Esame Ocaml. Nome: ... let rec f = function 0 -> 1 | n -> n * f(n+1);; ... (27punti)
Nello svolgimento del seguente esame, il candidato crei una cartella con il
proprio.
Universit` a Ca’ Foscari Dipartimento di informatica
Programmazione part-time Esame Ocaml
Nome: Matricola: Samuel Rota Bul` o , a.a. 2010/2011
Programmazione part-time a.a. 2010/2011
Esame Ocaml
Nome: Samuel Rota Bul`o
Teoria. (10 punti) Rispondere ai seguenti quesiti utilizzando eventualmente gli appositi spazi bianchi. Tempo totale a disposizione: 20 min. (2pts )
1. Dato il seguente codice:
let f x y = x y ;
2 pts
quale delle sequenti affermazioni `e corretta? (Barrare la risposta esatta) (a) f 2 4 = 8 (b) f `e di tipo (int -> int) -> int -> int (c) x `e una funzione (d) l’espressione `e errata (e) f 1 `e una funzione (3pts )
2. Scrivere una funzione teste che date due liste ritorni una coppia i cui elementi sono le rispettive teste. Se una delle due liste `e vuota lanciare un’eccezione con failwith "Le liste non devono essere vuote". Per esempio:
3 pts
• teste [1;2;3] [’a’;’b’] deve restituire (1,’a’) • teste [] [1;2;3] deve lanciare l’eccezione. • teste [1;2;3] [] deve lanciare l’eccezione. • teste [] [] deve lanciare l’eccezione.
(2pts )
3. Qual `e il tipo della funzione test definita nell’esercizio precedente? val test :
(3pts )
2 pts
4. Date le seguenti variabili:
let rec f = function 0 -> 1 | n -> n * f ( n +1) ;; let rec h x = x