Подтвердить что ты не робот

Разница между print и putStrLn в Haskell

Я сбит с толку. Я пытался использовать print, но я знаю, что люди применяют putStrLn. Каковы реальные различия между ними?

print $ function 
putStrLn $ function
4b9b3361

Ответ 1

Функция putStrLn принимает String и отображает ее на экране, а затем символ новой строки ( put a Str, а затем новый > L я п е).

Поскольку он работает только с String s, общая идиома - это взять любой объект, преобразовать его в String, а затем применить putStrLn для его отображения. Общий способ преобразования объекта в String выполняется с помощью функции show, поэтому ваш код будет содержать много

putStrLn (show 1)
putStrLn (show [1, 2, 3])
putStrLn (show (Just 42))

Как только вы заметите, что это не очень большое растяжение для определения функции, которая преобразуется в String и отображает строку за один шаг

print x = putStrLn (show x)

что и есть функция print.