Exercitium1-0.1.0.0: Problemas de Exercitium (Volumen 1)

CopyrightExercitium (29-04-17)
LicenseGPL-3
MaintainerJoseA.Alonso@gmail.com
Safe HaskellSafe
LanguageHaskell2010

Anagramas

Description

Una palabra es una anagrama de otra si se puede obtener permutando sus letras. Por ejemplo, "mora" y "roma" son anagramas de "amor".

Definir la función

anagramas :: String -> [String] -> [String]

tal que (anagramas x ys) es la lista de los elementos de ys que son anagramas de x. Por ejemplo,

>>> anagramas "amor" ["Roma","mola","loma","moRa", "rama"]
["Roma","moRa"]
>>> anagramas "rama" ["aMar","amaRa","roMa","marr","aRma"]
["aMar","aRma"]

Synopsis

Documentation

anagramas :: String -> [String] -> [String] Source #

1ª definición (por recursión):

sonAnagramas :: String -> String -> Bool Source #

(sonAnagramas xs ys) se verifica si xs e ys son anagramas. Por ejemplo,

>>> sonAnagramas "amor" "Roma"
True
>>> sonAnagramas "amor" "mola"
False

sonAnagramas2 :: String -> String -> Bool Source #

2ª definición de sonAnagramas

sonAnagramas3 :: String -> String -> Bool Source #

3ª definición de sonAnagramas (con on)

verifica_sonAnagramas :: Bool Source #

Comprobación de la equivalencia de las definiciones de anagramas.

>>> verifica_sonAnagramas
True

anagramas2 :: String -> [String] -> [String] Source #

2ª definición (por comprensión)

anagramas3 :: String -> [String] -> [String] Source #

3ª definición (con filter y sin el 2ª argumento)

anagramas4 :: String -> [String] -> [String] Source #

4ª definición (sin sonAnagramas ni el 2º argumento)

verifica_anagramas :: Bool Source #

Comprobación de la equivalencia de las definiciones de anagramas.

>>> verifica_anagramas
True