У меня есть следующее. Он просто проверяет, пуст ли List
. Однако, если я попытаюсь запустить его с main
, я получаю сообщение об ошибке. Как мне изменить функцию main
, чтобы запустить ее правильно?Список данных - проверка наличия пустого списка
data List a = Nil | Cons a (List a)
vnull :: List a -> Bool
vnull Nil = True
vnull _ = False
main = do print (vnull [1,2])
Ошибка заключается в следующем:
Couldn't match expected type `List a0' with actual type `[Integer]'
In the first argument of `vnull', namely `[1, 2]'
In the first argument of `print', namely `(vnull [1, 2])'
In a stmt of a 'do' block: print (vnull [1, 2])
'print' понадобится добавить' вывод show' в конце описания данных для 'list' – Michael
Unrelated наконечника: вам не нужно' do' если вы имеют только одно действие «IO» (в вашем случае «печать»). – duplode
кстати.'fromList = foldr Cons Nil' - это действительно удобная функция, когда вы делаете это так. – epsilonhalbe