LINUX.ORG.RU
Форум — Development

Haskell: под ghc работает, под ghci нет

 ,


0

1

Простой код:

let myprod [] = 1
let myprod (x:xs) = x * myprod xs
myprod [1,2,3]

*** Exception: <interactive>:4:5-33: Non-exhaustive patterns in function myprod

Если просто скомпилировать, то все ок. Подскажите что я пропустил?

В ghci ты создаёшь два биндинга. Первый перекрывает второй. Попробуй так:

let { myprod [] = 1; myprod (x:xs) = x * myprod xs }
KblCb ★★★★★
()

Ты 2 разные функции определил, переопределив второй первую. Используй :{ для многлстрочных деклараций.

qnikst ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.