Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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)
- }
- }
- }
- }
- struct User {
- static let create = curry(User.init(id:name:))
- let id: Int
- let name: String
- let email: String?
- init(id: Int, name: String, email: String?) {
- self.id = id
- self.name = name
- self.email = email
- }
- init(id: Int, name: String) {
- self.init(id: id, name: name, email: nil)
- }
- }
- type(of: User.create)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement