我有以下信息。它只是简单地检查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'需要你加上'以数据宣告结束了'List' – Michael
无关尖获得Show':如果你不需要'do'只有一个'IO'动作(在你的情况下,'打印')。 – duplode
btw。'这样做时'fromList = foldr Cons Nil'是一个非常方便的函数。 – epsilonhalbe