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)) | |
| } | |
| } |