Carte de fonction en Haskell

Autant je comprends la carte en Haskell prend une fonction et une Liste et applique cette fonction à chaque élément de cette liste avant de créer une nouvelle liste avec la fonction appliquée à chaque membre.

De l'essayer, cela fonctionne très bien avec les fonctions simples comme la (+5) de sorte qu'il fonctionne bien si je type:

map (+7) [2,8,9,3]

J'obtiens:

[9,15,16,10]

Toutefois, cela ne fonctionne pas avec les fonctions que j'ai créé. Dire que j'ai fait une fonction shiftLetter dont la déclaration de type est:

shiftLetter :: Char -> Int -> Char

(Int changer la façon dont loin le long de la lettre retournée est)

Si je fais une nouvelle fonction pour le faire avec plus d'une lettre et type:

shiftLetters :: String -> Int -> Char
shiftLetters letters shift = map shiftLetters "AKHLKHN"

J'ai des erreurs, pourquoi est-ce?

supposons que vous avez foiré shiftLetters et shiftAlphabet, de les vérifier de nouveau
Qu'est-ce que shiftAlphabet? Quelque chose comme shiftAlphabet char = shiftLetter char shift peut-être ce que vous cherchez?
dans l'interpréteur, faire ces choses et figure sur votre propre: :t map, :t shiftLetter.
et aussi :t map shiftLetter "AKHLKHN", je veux dire.
"J'ai des erreurs, pourquoi est-ce?" parce qu'il y a erreurs. Et croyez-le ou pas, le texte des messages d'erreur est une cause de préoccupation, oui, en effet. Si vous ne lisez pas, vous devriez au moins de les poster.

OriginalL'auteur Eddie | 2013-10-12