问题是输入两个列表并根据另一个列表中的相应编号重复第一个列表中的元素。例如repeat([2,3,4],[1,2,2])
会给[2,3,3,4,4]
fun repeat1(a,b)=if b>0 then a::repeat1(a,b-1) else [];
fun repeat([],[])=[]
|repeat([l1],[m1])=repeat1(l1,m1)
|repeat(l1::ln,m1::mn)=if length(l1::ln)=length(m1::mn) then if ln<>[] then repeat1(l1,m1)@repeat(ln,mn) else [] else [];
错误说
stdIn:36.64-36.66 Warning: calling polyEqual
stdIn:34.5-36.112 Warning: match nonexhaustive
(nil,nil) => ...
(l1 :: nil,m1 :: nil) => ...
(l1 :: ln,m1 :: mn) => ...
这些是做什么用的(我知道它对于基本案例和归纳案例是不够的)?但是,即使这不会影响程序的输出,我该如何删除此警告?谢谢。