Comment puis-je créer une nouvelle ligne dans une chaîne? Est-ce possible sans utiliser IO ()
?
formatRow :: Car -> String
formatRow (a, d:ds, c, x:xs) = a ++ " | " ++ x ++ concat xs ++ " | " ++ show c ++ " | " ++ d ++ concat ds ++ (show '\n')
Pour créer une chaîne contenant une nouvelle ligne, écrivez simplement "\n"
.
Si vous exécutez votre programme sous Windows, il sera automatiquement converti en "\r\n"
.
Notez que l'appel de show
dessus échappera à la nouvelle ligne (ou à tout autre méta-caractère), donc ne faites pas foo ++ (show "\n")
ou foo ++ (show '\n')
- utilisez simplement foo ++ "\n"
.
Notez également que si vous évaluez simplement une expression de chaîne dans GHCi sans utiliser putStr
ou putStrLn
, elle appellera simplement show
dessus, donc par exemple la chaîne "foo\n"
s'affichera comme "foo\n"
dans GHCi, mais cela ne change pas le fait qu'il s'agit d'une chaîne contenant un retour à la ligne et il s'imprimera de cette façon, une fois que vous l'avez sorti en utilisant putStr
.