Miranda
Miranda è un linguaggio di programmazione funzionale non-rigoroso, sviluppato da David Turner all'Università del Kent alla fine degli anni '80. È un linguaggio proprietario, basato sui precedenti linguaggi SASL e KRC. Pur non essendo più in uso attivo, Miranda è stato influente nello sviluppo di linguaggi funzionali successivi, in particolare Haskell.
Caratteristiche principali:
- Funzionale puro: Miranda aderisce al paradigma della programmazione funzionale, il che significa che le funzioni non hanno effetti collaterali e il risultato di una funzione dipende esclusivamente dai suoi argomenti.
- Non-rigoroso (Lazy Evaluation): Miranda utilizza la valutazione non-rigorosa, il che significa che le espressioni vengono valutate solo quando il loro valore è effettivamente necessario. Questo può portare a una maggiore efficienza e alla possibilità di lavorare con strutture dati infinite.
- Sistema di tipi: Miranda ha un forte sistema di tipi polimorfico, con inferenza di tipo. Ciò significa che il compilatore può spesso dedurre i tipi di variabili ed espressioni senza che il programmatore debba specificarli esplicitamente.
- Pattern Matching: Miranda supporta il pattern matching, una potente tecnica per definire funzioni che operano su diversi casi o forme di dati.
- List Comprehension: Miranda offre list comprehension, una sintassi concisa per creare nuove liste basate su altre liste.
Influenza:
Miranda è stato un importante precursore di Haskell. Molti concetti e caratteristiche presenti in Haskell, come la valutazione non-rigorosa, il sistema di tipi e le list comprehension, sono stati influenzati da Miranda.