- 40 名前:8 mailto:sage [2012/02/28(火) 16:01:08.16 ]
- >>39
2点、反論する まずHaskellやMLの中置演算子 -> は、型式の中だけで定義されている つまり「値の式」と(「型の式」である)型式をごっちゃにした指摘 >>29 はトンチンカンと言える 実際、Standard MLの「値の式」では前置のラムダ構文 fn が使われるし、 Haskellにいたっては、¥記号(バックスラッシュ)というRubyと同様な記号が使われている 【Standard ML(SML/NJ)での実行例】 - (fn x => x + 1) : int -> int; (* コロンの左辺が「値の式」、右辺が型式 *) > val it = fn : int -> int 次に、すでに>>35で書いたけど、短縮記号の右矢印がキモイ(=不慣れなので読みづらい)のであれば、 Ruby 1.8 の(冗長だけど初心者には優しい)lambda記法を使う事もできる(要は、「慣れ」の問題) t = lambda { |f, x| f[f[x]] }.curry x = t[t][t][t][lambda { |x| x + 1 }][0] 結果としてRubyでは、>>8,23,35 そして上記コードという、 プログラマの慣れ/熟練度/用途等に応じた4通りの表現の使い分けが可能になる
|

|