var fib_6 = {
v: Int -> Int in
if v <= 1 { return v }
return ???(v - 1) + ???(v - 2)
}(6)
🤫 { (v, fib) -> Int in
if v <= 1 { return v }
return fib(v - 1) + fib(v - 2)
}(6)
struct 🤫<IN, OUT> { | |
init(function: @escaping (IN, 🤫<IN, OUT>) -> OUT) { | |
self.closure = { | |
(_in: IN, `self`: 🤫<IN, OUT>) in | |
try function(_in, self) | |
} | |
} | |
let closure: (IN, 🤫<IN, OUT>) -> OUT | |
func callAsFunction(_ in: IN) -> OUT { | |
closure(`in`, self) | |
} | |
} |
class 🤫Tests: XCTestCase { | |
func test() throws { | |
XCTAssertEqual( | |
8, | |
🤫 { (v, fib) -> Int in | |
if v <= 1 { return v } | |
return fib(v - 1) + fib(v - 2) | |
}(6)) | |
} | |
} |