Programación funcional en CAML
Funciones con expresiones condicionales
A continuación tenemos funciones para entender el uso de expresiones condicionales en CAML.
Definir una función que calcule el valor absoluto.
Absoluto: int->int=<fun>
Resolución:#let absoluto = function x -> if x<0 then x*(-1) else x;; absoluto : int -> int = <fun> |
#absoluto (-2);; - : int = 2 |
Definir una función que ordene dos números enteros pasados por parámetros.
Funciones con expresiones básicas
El código que se nos pide a continuación sirve para aprender a trabajar con funciones que manejan expresiones básicas; es una buena base para el estudio posterior y más exhaustivo de CAML.
Definir una función que calcule el triple de un entero pasado por parámetro.
Triple: int->int=<fun>
Resolución:#let triple = function x -> 3*x;; triple : int -> int = <fun> |
#triple 3;; - : int = 9 |
Definir una función que devuelva la última cifra de un entero pasado por parámetro.
Red de Metro
A continuación muestro el enunciado de un ejercicio práctico bastante útil para practicar CAML, consiste en lo siguiente:
Se dispone de una red de metro con las siguientes líneas bidireccionales:
La Red de Metro se codifica como una lista de tuplas cuyo primer elemento es el número de la línea y el segundo elemento es la lista formada por las estaciones de la línea, en concreto para el ejemplo: