>>691
>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は基本的には命令型言語であるけれど、 関数型プログラミングへの
  際立った潜在能力があるのだから、 それらをいつどのように使うか(そして、いつ使わないか)を
  知っておくべきである。