如何在Elm中遍历Set集合?或实现Set转List?
在Elm中遍历Set集合或转换为List的方法
- 直接转换为List处理:Elm的
Set模块提供了Set.toList方法,这就是你需要的List.fromSet等价方法。转换后就能用你熟悉的递归方式遍历List,示例代码如下:
import Set exposing (Set) checkSet : Set Int -> Bool checkSet set = let iterate lst = case lst of [] -> False x::xs -> x > 5 || iterate xs in iterate (Set.toList set)
- 直接遍历Set:如果不想转成List,也可以用Set模块内置的
foldl或foldr函数实现遍历逻辑,这两个函数会按顺序遍历集合元素并累积结果,示例如下:
import Set exposing (Set) checkSet : Set Int -> Bool checkSet set = Set.foldl (\x acc -> acc || x > 5) False set
foldl会从集合的最小值到最大值依次处理元素,foldr则是从最大值到最小值处理,可按需选择。
内容的提问来源于stack exchange,提问作者Vulsan Bianca
相关产品推荐
相关产品推荐

