我有一个列表,其中包含某些Node类型的元素,可能是UNode或LNode或RNode
[
UNode("a"), LNode("b"), RNode("c")
]
如何按类型(例如UNode)
过滤它答案 0 :(得分:9)
列表推导在这里似乎很有用:
[ x | x@(Unode _) <- list ]
答案 1 :(得分:4)
不幸的是,就我所知,最简单的方法也是唯一的方法:匹配。
let isUNode node =
case node of
UNode _ -> True
_ -> False
in filter isUNode