Ruby 初心者スレッド Part 59 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0692デフォルトの名無しさん
2017/02/23(木) 01:27:53.73ID:Zu/nS+/A>Rubyのブロックが式じゃないのは本当に糞
RubyのブロックはProcオブジェクトの「構文糖」だからね
もしブロックを式(の要素)として扱いたいのなら、lambda { … } と書けばいいだけの話
>-> { とか関数型信者なら発狂するレベルの醜悪なシンタックス
これに関しては同意する
ただでさえ複雑難解なRubyの構文仕様にあえて:
・メソッド Kernel.#lambda の代用として、-> という予約語
・メソッド Proc.call の代用として self[…] という別名(エイリアス)
・メソッド Proc.call の代用として self.(…) という構文
がRuby1.9で追加されたけれど、どれも「実践的な関数型プログラミング」という視点では糞だ
ただし糞を使わなければいいだけで、lambda と call を使うことには何の問題も無い
というか、最適ではないという根拠はこんな2つだけなのかな?
逆に、最適であるという根拠は以下の文書で解説されているんだけどね
・Rubyによる関数型プログラミング
http://www.h6.dion.ne.jp/~machan/misc/FPwithRuby.html
この文書から引用しとく:
Rubyは基本的には命令型言語であるけれど、 関数型プログラミングへの
際立った潜在能力があるのだから、 それらをいつどのように使うか(そして、いつ使わないか)を
知っておくべきである。
■ このスレッドは過去ログ倉庫に格納されています