Reconocimiento de palíndromos
Definir la función
1 |
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,
1 2 |
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.
1 2 3 |
palindromo :: Eq a => [a] -> Bool palindromo xs = xs == reverse xs |
El código se encuentra en GitHub.
1 2 3 4 5 6 |
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))
.
- en Haskell, con
- Para comparar la igualdad de dos listas
xs
eys
se escribe igual qh Haskell y en Python:xs == ys
.