web-dev-qa-db-fra.com

Fonction Char to String

J'ai une question très simple: Étant donné une fonction acceptant un caractère et renvoyant une chaîne

test :: Char -> [String]

comment peut-on convertir le caractère en chaîne? Je suis confus sur les deux types.

22
Lunar

Dans Haskell, String est un alias pour [Char]:

type String = [Char]

Si vous voulez juste une fonction qui convertit un seul caractère en une chaîne, vous pouvez par exemple faire

charToString :: Char -> String
charToString c = [c]

Si vous préférez le style Pointfree, vous pouvez aussi écrire

charToString :: Char -> String
charToString = (:[])
45
Thies Heidecke

Une chaîne n'est qu'un [Caractère]

Mais c'est juste une bonne façon de dire

'H':'E':'L':'L':'O':[]

Donc, pour en faire une [chaîne], nous pourrions faire:

['H':'E':'L':'L':'O':[]]
5
adorablepuppy

Une autre façon serait d'utiliser

return . return

Puisque return pour les listes est défini comme :[]

4
fuz

Notez que vous pouvez convertir tout type implémentant la classe de type Show en une chaîne à l'aide de show:

(Show a) => a -> String

Comme Char l'implémente, la fonction est déjà écrite pour vous!

0
Tom