[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
378
(1): デフォルトの名無しさん [sage] 2011/11/06(日) 05:53:55.40 AAS
>>377
377(1): デフォルトの名無しさん [sage] 2011/11/06(日) 02:49:06.58 AAS
Haskellの変数の有効範囲って何か具体的に決まっているのかな?
Haskel Reportを読んでもはっきりと書かれていないような。

以下のように関数(>>?)を定義してvalue1, value2を求めると
value1は普通に求められるが、value2は\s -> s + aのところで
aが未定義ですとか言われる。

括弧があると変数の有効範囲が変わるのかな?

(>>?) :: a -> (a -> b) -> b
v >>? f = f v

value1 = (1, 2) >>? \(a, b) -> b >>? \s -> s + a
value2 = (1, 2) >>? (\(a, b) -> b) >>? \s -> s + a
関数の仮引数の有効範囲はその関数本体というのが基本原則。

> value1 = (1, 2) >>? \(a, b) -> b >>? \s -> s + a

value1 = (1, 2) >>? (\(a, b) -> b >>? \s -> s + a)
と解釈されるのでs + aは\(a,b) -> ...の関数本体内に含まれるが

> value2 = (1, 2) >>? (\(a, b) -> b) >>? \s -> s + a
はかっこがあるため含まれない。
1-
あと 600 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.017s