- 590 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 07:41:05 ]
- Y Combinator ってこれであってるのかな...
package main func main() { fact5 := func(f func(func(int)int)(func(int)int)) (func(int)int) { return func(proc interface{}) (func(int)int) { return f(func(arg int)int{return proc.(func(interface{})(func(int)int))(proc)(arg)}) }(func(proc interface{}) (func(int)int) { return f(func(arg int)int{return proc.(func(interface{})(func(int)int))(proc)(arg)}) }) }(func(f func(int)int) (func(int)int) { return func(n int) int { if n == 0 { return 1; } return n * f(n - 1); } })(5); println(fact5); }
|

|