Я наблюдаю за «Основами Haskell Part 1» в Pluralsight. Во второй главе автор показывает очень простую функцию с , если в ней находится. Когда я пробовал это, я получаю ошибку каждый раз, когда я пробовал функцию с отрицательным числом. Вот функцияПочему отрицательное число в следующем случае, если условие вызывает ошибку?
posOrNeg x =
if x >= 0
then "Positive"
else "Negative"
Когда я попробовал этот метод с положительным числом он работал нормально, но когда я вызываю метод с отрицательным числом, winGHCi бросками следующее сообщение об ошибке.
«Нет экземпляра для (Показать (a0 -> [Char]))), возникающего из-за использования« print »...»
Разве это больше, чем функция здесь?
Да, я не передал отрицательное число в круглых скобках. Раньше я не знал об этой разнице. Это имеет смысл. – Nair
Обратите внимание, что с '-XNegativeLiterals' вы можете сделать' posOrNeg -42' (но не 'posOrNeg-42'). – leftaroundabout
иногда проще использовать 'negate', немного зависит от ситуации – Carsten