関数型プログラミング言語Haskell Part27_©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0259デフォルトの名無しさん
2015/01/22(木) 23:39:27.07ID:+0By/pHuじゃあなんで「純粋な関数」に固執する意味があるのか。
個人的にはあんまないと思うけど、一応
1.純粋な関数であれば(呼び出し回数に応じて返す値が変わるようなことはないので)最適化しやすい(ほんとかなぁ)。
2.最外最左簡約のように、「同じ部分式を何度も評価する」ことになりやすい評価戦略を選んだ場合、もし関数の純粋性が保証されているならば
「グラフ簡約」のような最適化手法により、良いコードが生成できる(ことがある)。
なんてことはあると思います。じゃあなんで「最外簡約」みたいなマイナーな評価戦略を使いたいかといえば
・無限リスト、例えば [1 ..] みたいのが余裕で作れて表現力が増す。
ぐらいしか思いつきませんが、とにかく「計算の結果次第で配列の長さが変わる」ような計算を、あまり
チマチマとしたコードを書かずにズバッと書けたりして俺TUEEEできるというのがいいんですかね。
まあ頭いい人は放っておくと変なものを作るということなんだと思います。
■ このスレッドは過去ログ倉庫に格納されています