我有这种数据类型
data Temp = Temp [[Int]]
deriving (Show)
所以,例如:
> let example = Temp [[2,3],[],[5,7,8],[2],[]]
如何仅过滤非空元素?我知道我可以这样做:
> filter (/=[]) [[2,3],[],[5,7,8],[2],[]]
[[2,3],[5,7,8],[2]]
但是尝试直接在example
上过滤会给我一个错误:
> filter (/=[]) example
Couldn't match expected type ‘[[t]]’ with actual type 'Temp'
我的目标是编写一个执行该过滤并返回新列表的函数。我怎样才能做到这一点? (请耐心等待,我刚刚开始学习Haskell)
答案 0 :(得分:2)
试试这个:
Error: All select() inputs must resolve to integer column positions.
The following do not: * var_name
即。 - 解构您的Temp值t获取列表列表,然后使用新的列表列表重建Temp值。
(关于使用Functor删除的内容)