Riepilogo - Costruttore di pipeline
Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 43 di 56.
Sfida
MedioCrea una piccola pipeline di dati basata sulle chiusure.
Leggi tre righe:
- Un numero intero
min - Un numero intero
scale - Un elenco di numeri interi separati da virgole
Definisci due factory di chiusure:
makeFilter(min: Int) -> (Int) -> Boolcatturamine restituisce un predicaton > minmakeScaler(by: Int) -> (Int) -> Intcatturabye restituisce una funzione che moltiplica per quel valore
Definisci poi una funzione pipeline(_ nums: [Int], filter: (Int) -> Bool, transform: (Int) -> Int) -> [Int] che prima filtra e poi trasforma.
Stampa tre righe:
- I numeri che hanno superato il filtro, uniti da
, - Gli stessi numeri dopo averli moltiplicati per il fattore di scala, uniti da
, - La somma dei valori moltiplicati per il fattore di scala
Per l'input 5 / 3 / 2,7,3,8,9, l'output è:
7,8,9
21,24,27
72Provalo tu
let minVal = Int(readLine()!)!
let scale = Int(readLine()!)!
let nums = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: makeFilter / makeScaler che restituiscano closure; pipeline(_:filter:transform:);
// poi stampa i valori filtrati, quelli scalati e la somma dei valori scalati
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Conteggio e indiciMaiuscole, minuscole e rimozione degli spaziRicerca nelle stringheSuddivisione e unioneSostituzione di sottostringheRiepilogo - Verifica del nome utente4Insiemi
Creare insiemiUnione e intersezioneDifferenza e differenza simmetricaSottoinsieme e sovrainsiemeRiepilogo - Filtro per tag7Progetto - Tracciatore di abitudini
Panoramica del progettoSegna come completato10Progetto - Motore di quiz
Panoramica del progettoPorre domande2Intervalli e passi
Intervalli chiusi e semiapertiPassoMetodi degli intervalliIntervalli in switchRiepilogo - Griglia del calendario5Funzioni di ordine superiore Parte 1
MapFilterReduceConcatenare map, filter e reduceRiepilogo - Statistiche sulle parole8Chiusure
Nozioni di base sulle closureClosure finaliCatturare i valoriRestituire closureFunzioni higher-order personalizzateRiepilogo - Costruttore di pipelineEsercitati da solo: Playground Swift