Array<String>
に対して reduce<U>(initial: U, combine: (U, T) -> U) -> U
を使ってみました。
let list = ["tokyo", "shibuya", "shinjyuku", "akasaka"]
let result = list.filter{ $0.utf16count > 5 }
.map { $0.uppercaseString }
.reduce(Array<String>()) {
var temp = $0
temp.append($1)
return temp
}
result
initial
で渡したものは、 combine
にはimmutableで渡されるようで、以下ではエラーとなった。
.reduce(Array<String>()) {
$0.append($1)
return $0
}
Playground execution failed: error: <REPL>:44:5: error: immutable value of type 'Array<String>' only has mutating members named 'append'
$0.append($1)
^ ~~~~~~