ESERCIZI PROGRAMMAZIONE HASKELL
Esercizio 1
Scrivere la funzione Haskell "pippo" che corrisponde al lambda termine
\xy.yx
Possibile soluzione.
Esercizio 2
Definire una funzione Haskell ricorsiva che prenda in input un
numero naturale n e calcoli la somma di tutti i numeri pari da 0 a n.
(Usare il predicato Haskell che controlla se un numero e' pari )
Esercizio 3
Definire in Haskell la funzione "manoh" che, preso un numero n,
restituisce la somma dei quadrati dei naturali da 0 ad n.
Possibile soluzione.
Esercizio 4
Definire in Haskell la funzione "mavah" che, preso un numero n,
restituisce il quadrato della somma dei naturali da 0 ad n.
Esercizio 5
Definire in Haskell la funzione "madaih" che, preso un numero n,
restituisce la somma dei naturali da 0 ad n.
Esercizio 6
Definire in Haskell la funzione "masih" che, preso un numero n,
restituisce il quadrato della somma dei naturali da 0 ad n.
Esercizio 6.5
Supponiamo di aver definito in Scheme una funzione a valori booleani (un predicato) "cucu".
Definire una funzione Scheme che, dati in input due numeri naturali n ed m (n ≤ m), restituisca la somma di tutti i numeri compresi tra n ed m che soddisfano il predicato "cucu".
Esercizio 7
Fornire una funzione Haskell che, preso in input un predicato p
sui naturali restituisca una funzione sui naturali che vale 2 sui
numeri su cui p e' vero e 3 sui numeri su cui
p e' falso.
Esercizio 11
Definire la funzione Haskell che implementi l'insertion sort su liste,
avendo come parametro anche la relazione di precedenza.
Possibile soluzione.
Esercizio 18
Definire una funzione Haskell che prenda in input un predicato su numeri una lista ls contenente
liste di numeri
e restituisca una lista uguale ad ls, ma con 0 al posto dei numeri che
soddisfano il predicato p?
Possibile soluzione.
Esercizio 32
Scrivere un programma Haskell che riconosca o rifiuti stringhe appartenenti al linguaggio
regolare, sull'alfabeto {a,b,c}, associato alla seguente espressione regolare
abc*b + aa
Ricordiamo che il tipo String in Hakell coincide con [Char] e che un carattere si rappresenta tra
apici (es.: 'a').
Possibile soluzione.