Translate
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/