バリケンのRuby日記 RSSフィード

2008-03-08

[] ErlangにはSchemeのletrec相当の機能がない?  ErlangにはSchemeのletrec相当の機能がない? - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  ErlangにはSchemeのletrec相当の機能がない? - バリケンのRuby日記  ErlangにはSchemeのletrec相当の機能がない? - バリケンのRuby日記 のブックマークコメント

Erlangで再帰のクロージャを作りたいけど、Schemeのletrecに相当する機能はないの?」という質問に、「それYコンビネーターでできるよ」って答えたけど、

Erlang Y Combinator:

y(M) ->
    G = fun (F) -> M(fun(A) -> (F(F))(A) end) end,
    G(G).
Bill Clementson's Blog: Y Combinator in Erlang

別の人から「いや、それはそうだけど、自分でYを定義するのってどうよ」「SchemeのletrecやCommon Lispのlabelsのように、言語側でサポートすべきでは?」という指摘があったよ。うーん、確かにそうかも。

そういえば、Rubyはどうかな?SchemeのletrecやCommon Lispのlabelsのような「再帰のクロージャを作る方法」を言語側でサポートしていたっけ?JavaScriptにはたしかあったと思うけど。

トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20080308