PFH: La semana en Exercitium (19 de agosto de 2022)

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

A continuación se muestran las soluciones.

1. Máximo de tres números

Definir la función

tal que (maxTres x y z) es el máximo de x, y y z. Por ejemplo,

Solución en Haskell

El código se encuentra en GitHub.

Soluciones en Python

El código se encuentra en GitHub.

Comentarios

  • El máximo de x e y se escribe
    • en Haskell, max x y y
    • en Python, max(x, y).

2. El primero al final

Definir la función

tal que (rota1 xs) es la lista obtenida poniendo el primer elemento de xs al final de la lista. Por ejemplo,

Soluciones en Haskell

El código se encuentra en GitHub.

Soluciones en Python

El código se encuentra en GitHub.

Comentarios

  • El primer elemento de la lista xs se calcula
    • en Haskell, con head xs
    • en Python, con xs[0]
  • El resto de la lista xs se calcula
    • en Haskell, con tail xs
    • en Python, con xs[1:]
  • La concatenación de las listas xse ysse calcula
    • en Haskell, con xs ++ ys
    • en Python, con xs + ys
  • En Python. xs.append(x) modifica la lista xs añadiéndole x al final. Por ejemplo,

3. Los primeros al final

Definir la función

tal que (rota n xs) es la lista obtenida poniendo los n primeros elementos de xs al final de la lista. Por ejemplo,

Soluciones en Haskell

El código se encuentra en GitHub.

Soluciones en Python

El código se encuentra en GitHub.

Comentarios
+ Los n primeros elementos de la lista xs se calcula
+ en Haskell, con take n xs y
+ en Python, con xs[n:].
+ La lista xs sin sus n primeros elementos se calcula
+ en Haskell, con drop n xs y
+ en Python, con xs[:n].

4. Rango de una lista

Definir la función

tal que (rango xs) es la lista formada por el menor y mayor elemento de xs. Por ejemplo,

Soluciones en Haskell

El código se encuentra en GitHub.

Soluciones en Python

El código se encuentra en GitHub.

Comentarios

  • El menor elemento de la lista xs se calcula
    • en Haskell, con minimum xs y
    • en Python, con min(xs).
  • El mayor elemento de la lista xs se calcula
    • en Haskell, con maximum xs y
    • en Python, con max(xs).

5. Reconocimiento de palíndromos

Definir la función

tal que (palindromo xs) se verifica si xs es un palíndromo; es decir, es lo mismo leer xs de izquierda a derecha que de derecha a izquierda. Por ejemplo,

Soluciones en Haskell

El código se encuentra en GitHub.

Soluciones en Python

El código se encuentra en GitHub.

Comentarios

  • La inversa de la lista xs se calcula
    • en Haskell, con reverse xs y
    • en Python, con list(reversed(xs)).
  • Para comparar la igualdad de dos listas xs e ys se escribe igual qh Haskell y en Python: xs == ys.