Possibili Esercizi
- Scrivere una funzione
ordinata
che riceve come
argomento una lista di interi e ritorna true
se la
lista e' ordinata, false
altrimenti
- Scrivere una funzione
somma
che riceve come
argomento una lista di interi e ritorna la somma dei numeri
contenuti nella lista. Se la lista e' vuota, la funzione non
deve terminare
- Scrivere una funzione
test
che riceve come argomenti
una lista di elementi di tipo 'a
ed una funzione con
tipo 'a -> bool
. test
conta il numero di
elementi della lista per cui la funzione passata come argomento
ritorna valore true
- Scrivere una funzione che testa se una lista e' palindroma
(invertendo l'ordine degli elementi, la lista rimane invariata)
- Si supponga che il tipo di dato
datatype evento = entra of string * int | esce of string * int
sia utilizzato per memorizzare gli ingressi e le uscite di persone
da un edificio (la coppia ricevuta come parametri dai due costruttori
contiene una stringa che indica il nome di una persona ed un intero
che indica l'ora di ingresso o uscita).
Si scriva una funzione ordina
che riceve come argomento
una lista di eventi e genera una lista contenente tali eventi
ordinati in ordine temporale.
- Dato il tipo
evento
dell'esempio precedente, si scriva
una funzione controlla
che riceve in ingresso una lista
ordinata di eventi e verifica se tale lista e' consistente (una
persona non puo' uscire da un edificio senza prima essere entrata,
non puo' entrare se e' gia' dentro l'edificio, ...)
- Si modifichi la funzione
controlla
per non richiedere
una lista ordinata (suggerimento: prima ordinare la lista, con
ordina
, poi invocare controlla
. Si renda
ordina
locale a controlla
) .