- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
484 :デフォルトの名無しさん[sage]:2015/06/09(火) 19:37:05.34 ID:YMX6lY// - 初心者スレが見当たらないのでここに書き込ませてください。
「$演算子による関数適用の区切り」と「.演算子による関数合成」 この違いというか使い分けって $演算子は括弧対応を沢山省略できて便利 例: sin $ cos $ tan $ x + 1 .演算子は関数合成で変数に束縛可能になるから便利 例: fun = sin . cos . tan . (+ 1) くらいかなと思ったのですが、後者は fun x = sin $ cos $ tan $ x + 1 別にこれでも構わないわけですよね。 .演算子の利点って他に何があるんでしょうか?
|
- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
486 :デフォルトの名無しさん[sage]:2015/06/09(火) 20:00:13.95 ID:YMX6lY// - 「関数そのものが欲しい時」って
fun x = sin $ cos $ tan $ x + 1 一応これでも目当ての関数 fun が得られてると思うのですが、要は「引数って邪魔だよね」的な感覚? 美的感覚だけでなく実行効率も違ってくるのでしょうか。
|
- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
488 :デフォルトの名無しさん[sage]:2015/06/09(火) 20:13:23.65 ID:YMX6lY// - ポイントフリーでググってみましたが...
例えば fact :: Integer -> Integer fact n = product [1..n] よりも fact = foldl (*) 1 . enumFromTo 1 のほうがスマートで好まれるのでしょうか。 実行効率同じなのになんだか可読性を犠牲にしすぎのように思えるのですが。
|
- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
490 :デフォルトの名無しさん[sage]:2015/06/09(火) 20:39:29.39 ID:YMX6lY// - ありがとうございます。ちょっとだけ感覚が分かってきました。
|