Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. import Foundation
  2.  
  3. infix operator **
  4. func **<T, F, E>(f: @escaping ((E) -> F), g: @escaping ((T) -> E)) -> ((T) -> F) {
  5. return { f(g($0)) }
  6. }
  7.  
  8. func addOne(i : Int) -> Int { return i + 1 }
  9. func byTree(i: Int) -> Int { return i * 3 }
  10.  
  11.  
  12. let array = (1...1000)
  13.  
  14. let time01 = Date()
  15. array.map(addOne).map(byTree) // 一番早い
  16.  
  17. let time02 = Date()
  18. array.map { byTree(i: addOne(i: $0)) } // あんまり
  19.  
  20. let time03 = Date()
  21. array.map(addOne ** byTree) // かわらない
  22.  
  23. let time04 = Date()
  24.  
  25. print(time02.timeIntervalSince(time01))
  26. print(time03.timeIntervalSince(time02))
  27. print(time04.timeIntervalSince(time03))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement