0Pricing
Swift Academy · Lezione

Composizione di funzioni e pipeline

Creare pipeline di dati componendo piccole funzioni in trasformazioni più grandi.

Composizione di funzioni e pipeline è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.

Benvenuto

La composizione di funzioni combina funzioni piccole e focalizzate in trasformazioni più ampie. È l'essenza della programmazione funzionale: costruire comportamenti complessi a partire da componenti semplici.

Composizione manuale

```swift func double(_ n: Int) -> Int { n * 2 } func addOne(_ n: Int) -> Int { n + 1 } let result = addOne(double(5)) // 11 ```

Comporre con un helper

```swift func compose(_ f: @escaping (B)->C, _ g: @escaping (A)->B) -> (A)->C { { f(g($0)) } } let doubleAndAdd = compose(addOne, double) print(doubleAndAdd(5)) // 11 ```

Operatore >>> personalizzato

```swift infixop precedencegroup CompositionPrecedence { ... } func >>> (f: @escaping (A)->B, g: @escaping (B)->C) -> (A)->C { { g(f($0)) } } let pipeline = double >>> addOne >>> String.init print(pipeline(5)) // "11" ```

Pipeline con una catena map/filter

```swift let process: ([Int]) -> [String] = { nums in nums.filter { $0 > 3 }.map { String($0 * 2) } } print(process([1,2,3,4,5])) // ["8","10"] ```

Stile point-free

Lo stile point-free evita di assegnare nomi agli argomenti intermedi: ```swift let words = ["hello","WORLD","Swift"] let lower = words.map { $0.lowercased() } // named let lower2 = words.map(\.description) // point-free where applicable ```

Key path come funzioni

I key path di Swift possono essere utilizzati come funzioni: ```swift struct User { var name: String } let users = [User(name:"Alice"),User(name:"Bob")] let names = users.map(\.name) // ["Alice","Bob"] ```

Creazione di una pipeline di dati

```swift let pipeline: (String) -> Int? = { s in let trimmed = s.trimmingCharacters(in:.whitespaces) guard !trimmed.isEmpty else { return nil } return Int(trimmed) } [" 42 "," ","7"].compactMap(pipeline) // [42,7] ```

Applicazione parziale

```swift func add(_ a: Int) -> (Int) -> Int { { a + $0 } } let add5 = add(5) print([1,2,3].map(add5)) // [6,7,8] ```

Perché la composizione è importante

Vantaggi: • Ogni funzione è piccola e facilmente testabile • Le pipeline sono leggibili dall'alto verso il basso • Riusabilità: `double` funziona da solo o in qualsiasi pipeline • Lazy: combinare con `.lazy` evita le allocazioni intermedie

Verifica rapida

Quale funzionalità di Swift consente di usare direttamente i key path come funzioni di trasformazione in map?

Riepilogo

Concetti chiave: • Comporre piccole funzioni per creare trasformazioni più grandi • `>>>` o la composizione manuale per creare pipeline riutilizzabili • Key path come funzioni per estrarre le proprietà in modo pulito • L'applicazione parziale crea funzioni specializzate • Combinare con `.lazy` per ottenere pipeline senza copie Prossimo argomento: sequenze lazy.

Domande Frequenti

La lezione «Composizione di funzioni e pipeline» è gratuita?

Sì — il testo completo di «Composizione di funzioni e pipeline» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.

Cosa imparerò in «Composizione di funzioni e pipeline»?

Creare pipeline di dati componendo piccole funzioni in trasformazioni più grandi. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Swift Academy?

Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Composizione di funzioni e pipeline»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Swift Academy?

Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Funzioni pure e progettazione senza effetti collaterali
  2. Funzioni di ordine superiore: map, flatMap, compactMap
  3. Composizione di funzioni e pipeline
  4. Sequenze lazy per l’efficienza
← Torna a Swift Academy