Números de Church

Los números naturales pueden definirse de forma alternativa empleando los números de Church. Podemos representar un número natural n como una función que toma una función f como parámetro y devuelve n veces f.

Definimos por tanto los números naturales como

De esta forma, para representar el número uno, repetir una vez una función es lo mismo que solamente aplicarla.

De manera similar, dos debe aplicar f dos veces a su argumento.

Definir cero equivale por tanto a devolver el argumento sin modificar.

Definir las funciones

tales que

  • cero, uno y dos son definiciones alternativas a las ya dadas y tres es el número natural 3 con esta representación.
  • (nat2Int n) es el número entero correspondiente al número natuaral n. Por ejemplo,

  • (succ n) es el sucesor del número n. Por ejemplo,

  • (suma n m) es la suma de n y m. Por ejemplo,

  • (mult n m) es el producto de n y m. Por ejemplo,

  • (exp n m) es la potencia m-ésima de n. Por ejemplo,

Comprobar con QuickCheck las siguientes propiedades. Para ello importar la librería Test.QuickCheck.Function y seguir el siguiente ejemplo:

Nota 1: Añadir al inicio del archivo del ejercicio los pragmas

Nota 2: Este ejercicio ha sido propuesto por Ángel Ruiz Campos.

Soluciones

Un comentario

Escribe tu solución