- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
478 :デフォルトの名無しさん[]:2015/06/09(火) 15:29:01.79 ID:Wpjwmkjs - 毛の壁ネタは専用スレで。
そこからの転載も不要。
|
- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
483 :デフォルトの名無しさん[]:2015/06/09(火) 18:36:24.03 ID:Wpjwmkjs -
しばしば目にするパターンではあるんだよな。 余再帰を巧く使いこなせるようになりたいとは思う。
|
- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
485 :デフォルトの名無しさん[]:2015/06/09(火) 19:46:28.21 ID:Wpjwmkjs - >>484
ポイントフリー教信者が使うため。 ってのはともかく、mapみたいな高階関数に関数を 渡さなきゃいけないところで、 map (¥x -> f $ g x) xs map (f . g) xs を見比べれば意味がわかるのでは。 なにかに関数を連鎖して適用した結果ではなくあくまで 連鎖した関数そのものが欲しい時には ( . ) が便利。
|
- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
487 :デフォルトの名無しさん[]:2015/06/09(火) 20:10:23.23 ID:Wpjwmkjs - 実行効率は一緒。
(f . g) を普通に「gしてfする」とか読むのになれると引数の方がじゃまになる。 「¥x -> f $ g $ x +1 」 より 「 f . g . (+1)」の方が、 「1足してgしてfする」と読みやすいし明瞭でしょ。 そのうちmapの引数にいちいちラムダ式書いてられるかって気になるよ。 よく使うものの構文は軽くなくてはいけない、というだけ(美的感覚とは少し違う)。
|
- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
489 :デフォルトの名無しさん[]:2015/06/09(火) 20:21:06.13 ID:Wpjwmkjs - >>488
ポイントフリー教に入信する理由は全然ない(本当にやめてほしい)。 簡単に「〜して…して〜する」みたいに読める時だけ使えば十分。 いちいち名前をつける必要のない(むしろ使い捨てなので名前をつけるべきでない)ような 関数のチェインをラムダ式よりも軽い構文で書ける、というのがまずは利点。 もう少し慣れてくると今度は Control.Lensパッケージが 関数合成演算子( . )を あたかもオブジェクト指向言語のメソッド呼び出しであるかのように見せる 芸当を見せてくれるけど、それはまだ先の話。
|