【发布时间】:2013-05-08 07:05:46
【问题描述】:
嘿,我是 Haskell 的新手。
所以我想消除列表中所有大于 500 的整数。
import Data.List
leng x = if(head x > 500) then leng(tail x) else [head x]++leng(tail x)
我得到了正确的输出,但在每个输出的末尾是
例外:Prelude.head:空列表
如何解决这个问题?
【问题讨论】:
-
一般来说,你应该使用
(h:t)而不是[h]++t(所以这里是(head x):(leng (tail x)))。 (:) 是 Haskell 的 cons 函数,将单个项目添加到列表的前面。