Я довольно новичок в Haskell, но знаю большинство основ. Однако есть одна вещь, которую я никак не могу понять. Рассмотрим мой пример ниже:
example :: Int -> Int
example (n+1) = .....
Часть (n+1) этого примера каким-то образом предотвращает ввод отрицательных чисел, но я не могу понять, как это сделать. Например.. Если бы ввод был (-5), я бы ожидал, что n будет просто (-6), поскольку (-6 + 1) равно (-5). Вывод при тестировании следующий:
Ошибка программы: ошибка сопоставления с образцом: пример (-5)
Может ли кто-нибудь объяснить мне, почему это не принимает отрицательные числа?
n+k
будут удалены из следующей версии спецификации языка Haskell (Haskell 2010). Насколько я знаю, на практике они используются редко (хотя, уверен, кто-то найдет анекдотический пример). Так что я бы посоветовал не использовать их. - person Tom Lokhorst   schedule 12.02.2010