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
eys
se escribe igual qh Haskell y en Python:xs == ys
.