Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct User {
- let id: Int
- let name: String
- let email: String?
- static let create = curry(User.init) // ОШИБКА компиляции
- init(id: Int, name: String, email: String?) {
- self.id = id
- self.name = name
- self.email = email
- }
- init(id: Int, name: String) {
- self.id = id
- self.name = name
- self.email = .none
- }
- }
- func curry<A, B, R>(_ f: @escaping (A, B) -> R) -> ((A) -> ((B) -> R)) {
- return { a in
- { b in
- f(a, b)
- }
- }
- }
- func curry<A, B, C, R>(_ f: @escaping (A, B, C) -> R) -> ((A) -> ((B) -> ((C) -> R))) {
- return { a in
- { b in
- { c in
- f(a, b, c)
- }
- }
- }
- }
- . . . . . . .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement