Hatena::Grouphaskell

talooの日記

2008-08-07

評価順序についての疑問

19:19

例えば、

let x = [1,2]
let f = foldl (+) 0

という状況で、

f $ x
($) f x
($ x) f

この 3 つの式は全て同じ答えを返す。分からないのは 3 つ目の式。なんで上 2 つと同じように評価されるのか。いまいちピンとこない。

nn2008/08/08 16:39($)とか(f $)とか($ x)は、二項演算子のセクションという記法(つまり構文)です。
($) ≡ λf.λx. f $ x
(f $) ≡ λx. f $ x
($ x) ≡ λf. f $ x

talootaloo2008/08/11 09:40なるほど中置演算子は、右辺左辺の両方に部分適用できるんですね。

(/ 2) 1 = 1 / 2 = 0.5
(1 /) 2 = 1 / 2 = 0.5

こんな感じですか。