ZVON では、takeWhile 関数に提供される定義の 1 つが次のとおりです。
Input: takeWhile (\x -> 6*x < 100) [1..20]
Output: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
(\x -> 6*x < 100)
誰かがその部分が何を意味するのか説明できますか?
ZVON では、takeWhile 関数に提供される定義の 1 つが次のとおりです。
Input: takeWhile (\x -> 6*x < 100) [1..20]
Output: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
(\x -> 6*x < 100)
誰かがその部分が何を意味するのか説明できますか?
もともと、アロンゾ・チャーチは関数式の変数をサーカムフレックスでマークしたいと考えていました(ŷ.x(yz))
が、当時のプリンストン印刷機ではそれができませんでした。次に、少なくともvars の前に次のようにキャレット(^y.x(yz))
を出力したいと考えていました:が、それもできませんでした。
次善の策は、代わりにギリシャ文字のラムダを使用することでした。それはすべて単なるタイプミスでした。(λy.x(yz))
現在、ASCII 端末では文字 を使用することさえできないため、Haskell では代わりにバックスラッシュを使用します (元のラムダ式表記λ
のドットの代わりに矢印を使用します)。
(\y -> x (y z))
g
は次のような関数を表します
g y = x (y z)
出典:どこか覚えていないので、どこかで読んでください。