我想创建一个lambda函数来得到一个阶乘函数,但是这会引发一个分段错误和错误。我如何在Swift中使用这个工作。请看看这个视频以供参考什么,我试图做http://www.confreaks.com/videos/1287-rubyconf2012-y-not-adventures-in-functional-programmingYCombinator不能在Swift中工作
typealias f =() ->()
typealias g = (Int) -> (Int)
typealias F = Any -> g
let y = { (gen: Any) -> g in
(gen as F)(gen)
}
let fact = y({ (gen: Any) -> g in
{ (n: Int) -> Int in
if n == 0 {
return 1
} else {
return n * (gen as F)(gen)(n - 1)
}
}
})
fact(10)
它现在可以在最新的测试版中使用。 – newacct 2014-09-30 02:18:39