Menu Close

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 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.
Haskell y Python

Escribe tu solución

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.