Haskell——标签集分区用什么?
初学者问题——您通常使用什么作为多重地图?我想要一个带有标签函数并按每个标签对元素进行分区的函数。例如,
f x | x `mod` 2 == 0 = EVEN
| otherwise = ODD
partition f lst
的输出,其中 lst :: [Int]
会很
EVEN --> [list of even numbers]
ODD --> [sublist of odd numbers]
抱歉打扰,我在 Hoogle 上找不到类似的东西。我想我可以通过 Data.List.Key
的 group
函数、sort
和一些映射来到达那里,但必须有一个更简单的方法怎么样,不是吗?这似乎是一个普遍有用的功能。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当只有两种情况时,您可以将它们映射为布尔值并使用
Data.List.partition
。在一般情况下,您可以使用
Data.Map
使用列表或设置作为值类型。您可以使用 < 轻松构建一个代码>Data.Map.fromListWith。When there are only two cases, you can map them to booleans and use
Data.List.partition
.In the general case, you can use a
Data.Map
with a list or set as the value type. You can build one easily usingData.Map.fromListWith
.