【发布时间】:2013-11-05 07:29:39
【问题描述】:
美好的一天!
所以我想写一个函数是Haskell如下
remove_nulls :: [ ([String], Int) ] -> [ ([String], Int) ] -> [ ([String], Int) ]
remove_nulls listofpair (y:ys)
| null listofpair = (y:ys)
| null (fst(head listofpair))= remove_nulls (tail listofpair) (y:ys)
| otherwise = remove_nulls (tail listofpair) (y:(head listofpair):ys)
接受可能看起来像这样的输入
remove_nulls [ ([],0) , (["abc", "dce"], 2) ] []
这个想法是,如果元组的第一个值中包含空值,它将从列表中删除元组。但是,每次我调用它时,它都会返回“函数 remove_nulls 中的非详尽模式”。
我尝试过更改基本情况,但总是得到相同的结果。任何帮助和利用都会很棒(目前只是学习 Haskell)。
【问题讨论】:
-
如果第二个参数是
[]会发生什么? -
请给出一些输入和预期输出的例子。您正在将 两个 元组列表作为输入。