Esercizio

3
Esercizio Esercizio in CAML una fuzione DIV che calcoli la divisione in ali (zero incluso). La funzione deve risultare inde applicata come in (DIV n 0), per ogni n≥0, con n di ore. scritta, la si esegua sulla macchina CAML per le se oni: 3 5;; DIV 18 3;; DIV 3 0;; DIV 0 0;; Una soluzione

description

Esercizio. Si sciva in CAML una fuzione DIV che calcoli la divisione intera sui naturali (zero incluso). La funzione deve risultare indefinita allorchè applicata come in (DIV n 0), per ogni n≥0, con n dividendo e 0 divisore. Un volta scritta, la si esegua sulla macchina CAML per le seguenti - PowerPoint PPT Presentation

Transcript of Esercizio

Page 1: Esercizio

EsercizioEsercizio

Si sciva in CAML una fuzione DIV che calcoli la divisione interasui naturali (zero incluso). La funzione deve risultare indefinitaallorchè applicata come in (DIV n 0), per ogni n≥0, con n dividendo e 0 divisore. Un volta scritta, la si esegua sulla macchina CAML per le seguentiapplicazioni:

DIV 3 5;; DIV 18 3;; DIV 3 0;; DIV 0 0;;

Una soluzione

Page 2: Esercizio

DIV dd ds = if (dd-ds)≥0then 1+DIV(dd-ds)dselse 0

Caml Light version 0.74

#let rec DIV dd ds = if (dd-ds) >= 0 then 1+DIV(dd-ds)ds else 0;;DIV : int -> int -> int = <fun>

#DIV 3 5 ;;- : int = 0#DIV 18 3;;- : int = 6#DIV 3 0;;Uncaught exception: Out_of_memory#f 0 0;;Uncaught exception: Out_of_memory

Page 3: Esercizio

@@dd ds

≥≥

IFTEIFTE

++ 00

11-- 00@@

++ 00

1100@@

++

11 ++

11

grafo della funzione DIVDIV

DIV 0 0DIV 0 0: grafo dell’espressione dopo la 3^ riduzione di grafo

Memoria a struttura Memoria a struttura di grafo di grafo