Ir al contenido principal

Reconocimiento de palíndromos

Definir la función

   palindromo :: Eq a => [a] -> Bool

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,

   palindromo [3,2,5,2,3]    ==  True
   palindromo [3,2,5,6,2,3]  ==  False

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.

Soluciones en Haskell

palindromo :: Eq a => [a] -> Bool
palindromo xs =
  xs == reverse xs

El código se encuentra en GitHub.

Soluciones en Python

from typing import TypeVar

A = TypeVar('A')

def palindromo(xs: list[A]) -> bool:
    return xs == list(reversed(xs))

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.