- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
478 :デフォルトの名無しさん[sage]:2016/06/25(土) 09:54:40.72 ID:mWRDlDK6 - >>476
add x y = x + y は add = ¥x -> ( ¥y -> x + y ) の略記( ¥x -> … はラムダ式のリテラル)。 どうしても書きたきゃ1段階だけ略記して add x = ¥y -> x + y と書いても構わない(がそう書くのは見たことがない)。
|
- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
479 :デフォルトの名無しさん[sage]:2016/06/25(土) 09:58:23.93 ID:mWRDlDK6 - あ〜もしかして、
f x で関数 f を x に適用するという表記が腑に落ちてないのかしら。 関数型言語で関数適用をいちいちf(x)みたいにカッコつけて書いてると煩雑なので 空白それじたいが(左結合の)関数適用演算子であるかのように表記する慣習。
|
- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
482 :デフォルトの名無しさん[sage]:2016/06/25(土) 10:05:25.94 ID:mWRDlDK6 - >>481
普通にラムダ式 λx.λy. x+y のリテラル(表記法)ってだけ。
|
- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
485 :デフォルトの名無しさん[sage]:2016/06/25(土) 10:11:07.91 ID:mWRDlDK6 - >>483
関数適用演算子としての空白は左結合なんで add x y はカッコを入れてわかりやすく書けば (add x) y のこと。 Haskellの関数はご推察通り一つの引数しか取らない(最初からカリー化されている)。
|