Podsumowanie – konstruktor potoków
Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 43 z 56.
Wyzwanie
ŚredniZbuduj niewielki potok danych oparty na domknięciach.
Odczytaj trzy wiersze:
- Liczba całkowita
min - Liczba całkowita
scale - Rozdzielana przecinkami lista liczb całkowitych
Zdefiniuj dwie funkcje tworzące domknięcia:
makeFilter(min: Int) -> (Int) -> Boolprzechwytujemini zwraca predykatn > minmakeScaler(by: Int) -> (Int) -> Intprzechwytujebyi zwraca funkcję, która mnoży przez tę wartość
Następnie zdefiniuj funkcję pipeline(_ nums: [Int], filter: (Int) -> Bool, transform: (Int) -> Int) -> [Int], która najpierw filtruje, a potem przekształca.
Wyświetl trzy wiersze:
- Liczby, które przeszły przez filtr, połączone za pomocą
, - Te same liczby po przeskalowaniu, połączone za pomocą
, - Sumę przeskalowanych wartości
Dla danych wejściowych 5 / 3 / 2,7,3,8,9 wynikiem jest:
7,8,9
21,24,27
72Spróbuj swoich sił
let minVal = Int(readLine()!)!
let scale = Int(readLine()!)!
let nums = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: makeFilter / makeScaler zwracające domknięcia; pipeline(_:filter:transform:);
// następnie wypisz przefiltrowane, przeskalowane oraz sumę przeskalowanych
Wszystkie lekcje w sekcji Logika i przepływ programu
1Dogłębnie o ciągach znaków
Liczba i indeksyWielkość liter i usuwanie białych znakówWyszukiwanie w ciągach znakówDzielenie i łączenieZastępowanie podciągówPodsumowanie — sprawdzanie nazwy użytkownika4Zbiory
Tworzenie zbiorówSuma i część wspólnaRóżnica i różnica symetrycznaPodzbiór i nadzbiórPowtórka — filtr tagów7Projekt – Śledzenie nawyków
Przegląd projektuOznacz jako wykonane10Projekt — silnik quizów
Przegląd projektuZadawanie pytań2Zakresy i kroki
Zakresy domknięte i półotwarteKrokMetody zakresówZakresy w instrukcji switchPowtórka — siatka kalendarza5Funkcje wyższego rzędu, część 1
MapFilterReduceŁączenie map, filter i reducePodsumowanie – statystyki słów8Domknięcia
Podstawy domknięćDomknięcia końcowePrzechwytywanie wartościZwracanie domknięćWłasne funkcje wyższego rzęduPodsumowanie – konstruktor potokówPoćwicz samodzielnie: Edytor online Swift