Lessico IT › Programmazione › do-notation

do-notation

Programmazione Svenska → Aggiornato: 2026-10-01

Zucchero sintattico di Haskell per concatenare chiamate a bind: fa sembrare imperativo il codice monadico. do { x <- getName; y <- getAge; return (x, y) } equivale a getName >>= \x -> getAge >>= \y -> return (x, y).

Equivalenti moderni: async/await di JavaScript (la do-notation per la monade Promise), l'operatore ? di Rust (la versione per le monadi Result/Option), asyncio.run di Python (di spirito simile). Scala ha la for-comprehension. Usi: concatenare azioni di I/O, gestione degli errori, list comprehension. Modello mentale: la do-notation rende leggibile il codice monadico senza costringere a pensare in modo imperativo. Il punto di forza di Haskell: la stessa sintassi funziona per QUALSIASI monade (IO, Maybe, Either, State, Reader, Writer, personalizzate). In Python e JS, async/await è un caso particolare per una sola monade.

← Torna al lessico