- 234 名前:デフォルトの名無しさん mailto:sage [2014/12/14(日) 02:05:45.83 ID:sl2oQCLD.net]
- うん、ただのPythonアンチでしか無いと思うよ。
Ruby好きでPython嫌いな俺は、Pythonのlambdaが使いにくいのには同意するが そのためにクロージャの定義のほうを捻じ曲げるのは、ありえないと感じるよ。 そもそも、その定義だとRubyどーなんねん、と思うし。 Rubyには「他言語の関数」に相当するものがなく、 一定の条件を満たし、見かけ上、関数のような呼び出しが可能なメソッドを 便宜的に「関数」と呼んでいるだけだし。 クロージャはブロックという形で存在はしているが、 彼の言う定義に従うならブロックはファーストクラスでなければならない。 でもRubyのブロックはファーストクラスとは言い難い。 lambda関数(実際はもちろんメソッド)が返すのはProcクラスのインスタンスだけれども、 ブロック.is_a? Procインスタンス では無い。そしてメソッドや、ましてや関数でもない。 そもそもブロック単体では値としては取り回せないからProcクラスがあるんだし。
|

|