OCaml practice

Practica con ocaml

  1. Define una funcion doble que multiplique su argumento (int) por dos.

  2. En clase vimos que ocaml permite definir o redefinir operadores. En el Learn OCaml in Y minutes hay un ejemplo de como redefinir el operador de suma +. Defina un operador +/. que promedie dos argumentos de punto flotante que reciba.

  3. Defina una funcion que reciba una lista de enteros no vacia, y encuentre el elemento maximo.

  4. Podemos definir un tipo para arboles binarios:

El codigo de bintree:

type bintree = Node of int * bintree * bintree | EmptyNode;;

Y definimos dos arboles pequeños:

let t1 = Node (3, EmptyNode, EmptyNode);;

let t2 = Node (1, Node (5, EmptyNode, EmptyNode), EmptyNode);;

Podemos definir una funcion sumtree que reciba un bintree y devuelva la suma de los enteros contenidos en el arbol:

let rec sumtree (tree : bintree) : int =
  (* FIXME - return the sum of all the nodes *)
  0

Cuando arreglen sumtree, sumtree t1 debe dar 3, y sumtree t2 debe dar 6.

Entreguen un archivo con su codigo ocaml en UPRRP moodle.