2015-08-20 4 views
2

Интересно, какой вариант вы бы выбрали?

putStrLn (show randomNum) 
putStrLn $ show randomNum 
(putStrLn . show) randomNum 

Все варианты являются синтаксически правильными.

  • Кронштейны убедитесь, что show выполняется первым и putStrLn получает только один аргумент.

  • $ оператор принимает функцию шоу и randomNum и выполняет show на randomNum, так putStrLn получает только один аргумент.

  • Оператор . принимает функцию putStrLn, функцию show и randomNum и выполняет первый show на randomNum, а затем putStrLn на результат.

Но что было бы более похоже на haskell или иметь больше смысла в этом примере?

+5

Я думаю, что это касается личного выбора. Я предпочитаю писать 'f $ g x'. Но с большим количеством функций я также пишу 'f. г . h $ x', перемещая '$' вправо. Я мог бы использовать 'f. g $ x', если find 'f. «значимый». Я знаю, что я не на 100% согласен в своем собственном стиле. – chi

+2

Определенно стилистический выбор. Выберите один и примените его последовательно. – MathematicalOrchid

+4

Это не очень подходящий вопрос для StackOverflow - все они одинаково похожи на Haskell. Правильного ответа нет. – ocharles

ответ

10
print randomNum 

С print = putStrLn . show, это очевидно. Если вы действительно хотите использовать отдельные функции, тогда составьте их.

putStrLn . show $ randomNum 
Смежные вопросы