【发布时间】:2021-12-08 22:46:55
【问题描述】:
这个问题与 Data.MultiSet 类型有关,https://hackage.haskell.org/package/multiset-0.3.4.3/docs/Data-MultiSet.html 我想迭代给定的 MultiSet 以创建一个新的 MultiSet。对于 MultiSet 中的每个元素,要么在新的 multiset 中创建一个元素,要么在新的 MultiSet 中创建两个新元素。 我认为这可以使用尾递归来完成,但我认为这不可能使用 MultiSet。
tailRecursion :: (Multiset String) -> (MultiSet String)
tailRecursion (x:xs) = do
-- if check x then (add one element tailRecursion xs) else (add two elements to the MultiSet tailRecursion xs)
我正在考虑使用 map 来执行此操作,但是(据我所知)不可能将大小为 n 的 Multiset 映射到大小为 x>n 的 Multiset。
如何使用 Data.MultiSet 来实现?
【问题讨论】:
-
你说的是hackage.haskell.org/package/multiset-0.3.4.3/docs/…吗?请始终在问题中明确说明此类内容。此外,还不清楚这个问题到底在问什么。
-
是的,我正在谈论这个,Data.MultiSet
-
:是[a]的数据构造函数,而不是用于检索可迭代值的下一项的通用语法。
标签: haskell