Je suis confus. J'ai essayé d'utiliser print
, mais je sais que les gens appliquent putStrLn
. Quelles sont les vraies différences entre eux?
print $ function
putStrLn $ function
La fonction putStrLn
prend un String
et l'affiche à l'écran, suivi d'un caractère de nouvelle ligne (put a Str ing suivi d'un nouveau L i n e).
Comme il ne fonctionne qu'avec String
s, un idiome courant consiste à prendre n'importe quel objet, à le convertir en String
, puis à appliquer putStrLn
pour l'afficher. La façon générique de convertir un objet en String
est avec la fonction show
, donc votre code se retrouverait avec beaucoup de
putStrLn (show 1)
putStrLn (show [1, 2, 3])
putStrLn (show (Just 42))
Une fois que vous avez remarqué cela, il n'est pas très difficile de définir une fonction qui se convertit en String
et affiche la chaîne en une seule étape
print x = putStrLn (show x)
qui est exactement ce qu'est la fonction print
.