PFH: La semana en Exercitium (26 de noviembre de 2022)

Esta semana he publicado en Exercitium las soluciones de los siguientes problemas:

A continuación se muestran las soluciones.

1. Aplica según propiedad

Definir la función

tal que filtraAplica f p xs es la lista obtenida aplicándole a los elementos de xs que cumplen el predicado p la función f. Por ejemplo,

1.1. Soluciones en Haskell

1.2. Soluciones en Python

2. Máximo de una lista

Definir la función

tal que maximo xs es el máximo de la lista xs. Por ejemplo,

2.1. Soluciones en Haskell

2.2. Soluciones en Python

3. Movimientos en el plano

Se consideran el tipo de las posiciones del plano definido por

Definir las siguientes funciones

tales que

  • opuesta d es la dirección opuesta de d. Por ejemplo,

  • movimiento p d es la posición reultante de moverse, desde la posición p, un paso en la dirección d. Por ejemplo,

  • movimientos p ds es la posición obtenida aplicando la lista de movimientos según las direcciones de ds a la posición p. Por ejemplo,

3.1. Soluciones en Haskell

3.2. Soluciones en Python

4. El tipo de figuras geométricas

Se consideran las figuras geométricas formadas por circulos (definidos por su radio) y rectángulos (definidos por su base y su altura). El tipo de las figura geométricas se define por

Definir las funciones

tales que

  • area f es el área de la figura f. Por ejemplo,

  • cuadrado n es el cuadrado de lado n. Por ejemplo,

4.1. Soluciones en Haskell

4.2. Soluciones en Python

5. El tipo de los números naturales

El tipo de los números raturales se puede definir por

de forma que Suc (Suc (Suc Cero)) representa el número 3.

Definir las siguientes funciones

tales que

  • nat2int n es el número entero correspondiente al número natural n. Por ejemplo,

  • int2nat n es el número natural correspondiente al número entero n. Por ejemplo,

  • suma m n es la suma de los número naturales m y n. Por ejemplo,

5.1. Soluciones en Haskell

5.2. Soluciones en Python