계승 함수를 얻기 위해 람다 함수를 만들려고하는데 이것으로 인해 분할 오류가 발생하고 오류가 발생합니다. 스위프트에서 어떻게 작동합니까? 내가 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