User Tools

Site Tools


ex-l3
  1. Definire una variabile di tipo lista di interi.
  2. Definire una funzione che data in ingresso una lista di interi vi aggiunga in testa il num 1.
  3. Definire una funzione con tipo: int list → int
  4. Definire una funzione con tipo: int → int list
  5. Scrivere una funzione minFun : (int → 'a) → int → int → 'a che presi in ingresso una funzione e due interi a,b tali che a≤b, restituisca il valore minimo della funzione nell’intervallo [a,b].
  6. Scrivere una funzione test che presa in ingresso una funzione f: int → int e due interi a,b, restituisca la stringa “increasing”, se f e’ crescente nell’intervallo [a,b] .
  7. Scrivere una funzione countPari: int → int tale che preso in ingresso un numero n, conti quante cifre di n sono pari. Ad esempio f 34 restituisce 1, mentre f 8234 restituisce 4.
  8. Generalizzare il punto precedente e scrivere una funzione f: ('int → bool) → 'int → int tale che presi in ingresso una funzione foo: int→ bool e un numero n, conti quante cifre di n soddisfano foo.Testarlo sulla funzione isThree = fun x → if x = 3 then true else false;;
  9. Scrivere una funzione exp : int → int → int tale che exp n x = xn. Sfruttare il fatto che x2n = (xn)2, e x2n+1 = (xn)2 x.
  10. Scrivere una versione tail recursive dell’algoritmo di fibonacci:
    let rec fib = fun n ->  if n=0 then 0
    else if n=1 then 1
    else fib (n-1) + fib(n-2);;
  11. Definire una funzione che presa una lista di interi vi aggiunga in coda il numero 1.
ex-l3.txt · Last modified: 2015/10/08 15:20 (external edit)