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