- 257 名前:デフォルトの名無しさん mailto:sage [2014/12/15(月) 11:24:34.16 ID:yMEZ5G45.net]
- >>243
こいつだけです。と言うかRubyに対しての知見も怪しい >>247 Rubyのブロック付きメソッド呼び出しのほうを構文糖と。またオレオレ定義? 「ブロック付きメソッド呼び出し」は文法だ、これはlambdaより先に実装されてる そのブロック部分のみを扱うためにProcクラスもlambdaより先に実装されていて、 そのProcを簡便に扱うためにlambdaと言う構文糖が後から出来た と言うか「ブロック付きメソッド呼び出し」、昔は「イテレータ呼び出し」だった イテレータ呼び出しを汎化した結果生まれたのが、ブロック付きメソッド呼び出し その時代からmapやselectなどの 今で言う関数型的なメソッド群を実装するモジュールEnumerableは 「これをincludeするクラスにはeachメソッドを実装すること」としていた もしRubyが関数型として設計されていてProcが主なら call必須なんてことにはしなかっただろうし 関数がメソッドの一種なんてことにはなってない そしてEnumerableはeachではなく、Array辺りを要求する高階関数群だっただろう RubyはOOPLとして設計され、それが主で 関数型プログラミングは結果として付いてきた そこでProcに関数型のラムダ的な挙動を付加し生成するlambdaも出来たんだよ
|

|