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>
Prueba:
#triple 3;;
- : int = 9

Definir una función que devuelva la última cifra de un entero pasado por parámetro.

Ultimacifra: int->int = <fun>

Resolución:
#let ultimacifra = function x -> x mod 10;;
ultimacifra : int -> int = <fun>
Prueba:
#ultimacifra 256;;
- : int = 6

Definir una función que quite la última cifra de un entero pasado por parámetro y lo devuelva como resultado

Quitarultima: int->int = <fun>

Resolución:
let quitarultima = function x -> x/10;;
#quitarultima : int -> int = <fun>
Prueba:
#quitarultima 25;;
- : int = 2

Definir una función que calcule si una letra pasada por parámetro es una vocal o no. Nota: Con definición por comprensión.

Esvocal: char->bool = <fun>

Resolución:
#let esvocal = function `a`->true | `e`->true | `i`->true | `o`->true | `u`->true | _->false;;
esvocal : char -> bool = <fun>
Prueba:
esvocal `a`;;
#- : bool = true

Definir una función que calcule la media de dos enteros pasados por parámetros.

Media: int*int->int = <fun>

Resolución:
#let media = function x,y -> (x+y)/2;;
media : int * int -> int = <fun>
Prueba:
#media (6,8);;
- : int = 7

Definir una función que devuelva si un entero es positivo o no y su última cifra.

Analisis: int->bool*int = <fun>

Resolución:
#let analisis = function x -> (x>0, x mod 10);;
analisis : int -> bool * int = <fun>
Prueba:
#analisis 44;;
- : bool * int = true, 4

Fichero con los enunciados aquí.

Fichero con las soluciones aquí.

vidalmb_admin – Lun, 03/04/2006 – 19:40