我想創建一個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