匿名 #5921(2008/03/02 03:38 GMT) [ Lua ] Rating0/0=0.00
以下のサイトが分かりやすかったです。 結果的に#5733さんのコードそのままになりました。
see: Y Combinator
1 2 3 4 5 6
Y = function(f) g = function(proc) return f(function(arg) return proc(proc)(arg) end) end return g(g) end print(Y(function(f) return function(n) if n < 2 then return 1 else return n * f(n - 1) end end end)(10))
Rating0/0=0.00-0+
1 reply [ reply ]
匿名 #5926(2008/03/03 03:04 GMT) [ Python ] Rating0/0=0.00
1 2 3 4 5
def Y(f): g = lambda proc: f(lambda arg: proc(proc)(arg)) return g(g) print Y(lambda f: lambda n: 1 if n < 2 else n * f(n - 1))(10)
[ reply ]
匿名
#5921()
[
Lua
]
Rating0/0=0.00
see: Y Combinator
Rating0/0=0.00-0+
1 reply [ reply ]