Avatar
sum の中で Array を生成せずに imperative な書き方してます。 public extension Sequence { @inline(__always) public func sum<G: AdditiveGroup>(mapping f: (Element) -> G) -> G { // MEMO reduce is slow. var res = G.zero for e in self { res = res + f(e) } return res } } (edited)
2:58 AM
ちなみに @inline(__always)@_inlineable の違いはなんだろうと思って調べてみたんですが、ここを見ると一個の関数に両方ついてるのがたくさんあって謎でしたw https://github.com/apple/swift/blob/master/stdlib/public/core/BridgeStorage.swift
swift - The Swift Programming Language
2:59 AM
@_inlineable // FIXME(sil-serialize-all) って書いてあるんで、いずれは消える予定?