函数s中的非穷举模式

时间:2016-08-28 03:50:42

标签: haskell

我有一个简单的程序:

s (x1:x2:xs) = print(x1) >> print(x2) >> s xs
main = s [5,4,1,1]

但它会产生以下错误:

Non-exhaustive patterns in function s

我已经尝试了很多来修复此错误。需要一些帮助。

1 个答案:

答案 0 :(得分:3)

仅对给定数据应用s定义:

s [5, 4, 1, 1]
print 5 >> print 4 >> s [1, 1]
print 5 >> print 4 >> print 1 >> print 1 >> s []
-- error: s [] is not defined

您只需在模式中添加案例:

s [] = return ()
s (x1:x2:xs) = ...

请注意s [5]仍然无效。