Swift-函数式Swift

2021-01-01  本文已影响0人  lieon

科里化

 
 extension Array {
     func map<T>(transform: ((Element) -> T)) -> [T] {
         var result: [T] = []
         for x in self {
             result.append(transform(x))
         }
         return result
     }
     
     func filter(transform: ((Element) -> Bool)) -> [Element] {
         var result: [Element] = []
         for x in self where transform(x) == true {
             result.append(x)
         }
         return result
     }
     
     func reduce<T>(initial: T, combine: (T, Element) -> T) -> T {
         var result = initial
         for x in self {
             result = combine(result, x)
         }
         return result
     }
 }
上一篇 下一篇

猜你喜欢

热点阅读