Я начал прокладывать себе путь через Erik Meijer 13-секционные лекции (и Graham Hutton slides), чтобы узнать Haskell.
На слайдах для главы 4, на стр. 13, он вводит синтаксис соответствия шаблону для шаблонов n + k. В частности, он говорит:
Как и в математике, функции на целых числах можно определить, используя n + k шаблоны, где n - целочисленная переменная, а k > 0 - целое число константа.
pred :: Int -> Int
pred (n+1) = n
Когда я попробовал это самостоятельно, в REPL я получил сообщение об ошибке:
*Main> let mypred (n+1) = n
<interactive>:65:13: Parse error in pattern: n + 1
Аналогично, если я попробую его в файле *.hs
mypred :: Int -> Int
mypred (n+1) = n
Компилятор дает аналогичную жалобу:
/Users/pohl/Code/praxis-haskell/helloworld.hs:14:9:
Parse error in pattern: n + 1
Я не понимаю, как использовать n + k шаблоны?