грамотный haskell - ошибка типа в приложении - PullRequest
0 голосов
/ 07 ноября 2018

Вот мой код:

> newtype IN_0 = IN_0 Integer deriving Show

> nminus :: IN_0 -> IN_0 -> IN_0
> nminus (IN_0 z) (IN_0 z')
>        | z >= 0 && z' >= 0 = IN_0 $ maximum(0,z-z')
>        | otherwise = IN_0 0

Когда я компилирую это в ghci, он компилируется без ошибок, но когда я пытаюсь скомпилировать его в объятиях, я получаю это сообщение об ошибке:

ERROR "untitled.lhs":51 - Type error in application
*** Expression     : maximum (0,z - z')
*** Term           : (0,z - z')
*** Type           : (b,Integer)
*** Does not match : [a]

Почему?

1 Ответ

0 голосов
/ 07 ноября 2018
> newtype IN_0 = IN_0 Integer deriving Show

> nminus :: IN_0 -> IN_0 -> IN_0
> nminus (IN_0 z) (IN_0 z')
>        | z >= 0 && z' >= 0 = IN_0 $ maximum [0,z-z']
>        | otherwise = IN_0 0

В Объятиях вы должны использовать квадратные скобки, когда используете максимум

...