小编Ell*_*n G的帖子

Haskell 如何删除列表的所有 0,直到其中一个元素 /= 0?

我是 Haskell 的新手,我正在尝试弄清楚如何编写代码,该代码将删除所有零,直到列表中的元素 > 0。

例如:

输入:[0,0,5,6,0]

输出:[5,6,0]

到目前为止,我已经写了这个:

zeroUntil :: [Int] -> [Int]
zeroUntil [] = []
zeroUntil (x:xs)
    | x == 0 = drop x (xs)
    | otherwise = zeroUntil xs
Run Code Online (Sandbox Code Playgroud)

但不知何故[5,6,0]我得到[]

任何人都可以解释我做错了什么吗?

recursion haskell list guard

2
推荐指数
1
解决办法
135
查看次数

标签 统计

guard ×1

haskell ×1

list ×1

recursion ×1