miércoles, 7 de septiembre de 2016

Objective Categorical Abstract Machine Language o OCaml para los amigos


Objective CAML, también conocido Ocaml, el nombre proviene de las siglas en inglés Objective Categorical Abstract Machine Language. Es un hijo de ML, desarrollado y distribuido por el INRIA en Francia. Ocaml admite los paradigmas de programación imperativa, programación funcional y programación orientada a objetos.

Es un lenguaje que reúne ML con Objetos, que no se si es lo mejor. Pero es un intento de introducir objetos a un lenguaje funcional.

Es de tipado estático y por lo tanto tiene chequeo por tipos. Que más tenemos? objetos, polimorfismo, pattern matching, garbage collection, generic, etc.

Veamos un hola mundo:

 > print_endline "Hello World !" ;;
 Hello World !
 val () : unit = <fun>

  (* Listas genéricas *)
 
  (* Longitud de una lista *)
  let rec long  = function
    |[] -> 0
    |x::xs -> 1 + long xs;;

  (* Ordenamiento por inserción *)
  (* dada una relación de orden *)
  let rec ordenar = function
    |[] -> []
    |x::xs -> insertar x (ordenar xs)
  and insertar e = function
    |[] -> [e]
    |x::xs -> if x > e
              then e::x::xs
              else x::(insertar e xs);;



Dejo link:
https://ocaml.org/