Als Übung versuche ich Karte, Länge und Filter als eine Reduzierungsfunktion zu schreiben.Swift Karte schreiben, Länge, Filter als reduzieren
func map<T>(array: [T], f: (T->T)) -> [T] {
return array.reduce([]) {
(var seed, value) in
seed.append(f(value))
return seed
}
}
func length<T>(array: [T]) -> Int {
return array.reduce(0){ (x,_) in x + 1 }
}
func filter<T>(array: [T], predicate: (T->Bool)) -> [T]{
return array.reduce([]){
(var seed, value) in
if predicate(value){
seed.append(value)
}
return seed
}
}
Ist dies die eleganteste Syntax, die ich verwenden kann, um diese Funktionen als reduzieren zu schreiben? 2. Frage: Karte nimmt eine Funktion f: (T-> T) Grundsätzlich sagt der Typ, ich kann nur etwas vom Typ T, aber was, wenn die Funktion, die ich schreibe transformiert Typ T zu einem Bool, oder Int ... Wie erreiche ich das? Scheint Karte nicht
Muchas gracias, danke! Genau die Art von Feedback, nach der ich gesucht habe. Swift ist eine seltsame Landschaft am Anfang;) – Seneca
Seltsame Landschaft, die dich dazu inspiriert hat, dies zu versuchen!?! :) – Grimxn
Anscheinend gibt es so etwas wie Wandler;) Ausgezeichnete Möglichkeit, etwas Grundwissen über swift zu erwerben. – Seneca