Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Foundation
- infix operator **
- func **<T, F, E>(f: @escaping ((E) -> F), g: @escaping ((T) -> E)) -> ((T) -> F) {
- return { f(g($0)) }
- }
- func addOne(i : Int) -> Int { return i + 1 }
- func byTree(i: Int) -> Int { return i * 3 }
- let array = (1...1000)
- let time01 = Date()
- array.map(addOne).map(byTree) // 一番早い
- let time02 = Date()
- array.map { byTree(i: addOne(i: $0)) } // あんまり
- let time03 = Date()
- array.map(addOne ** byTree) // かわらない
- let time04 = Date()
- print(time02.timeIntervalSince(time01))
- print(time03.timeIntervalSince(time02))
- print(time04.timeIntervalSince(time03))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement