gpt4 book ai didi

haskell - 如何使用两个映射遍历 Haskell 中的二元组?

转载 作者:行者123 更新时间:2023-12-05 08:24:41 25 4
gpt4 key购买 nike

我有一个支持以下操作的 monad m:

someName :: (t1 -> m u1) -> (t2 -> m u2) -> ((t1, t2) -> m (u1, u2))

用更像英语的方式:给定一个可以与 bind 一起使用以将 m t1 转换为 m u1 的映射和另一个映射对于另一对类型,为这两种类型的对返回这样的映射。

这个概念有名字吗?它对所有 monad 都有明确的定义吗?只有一些?没有,我的事实与我正在研究的事实不符?


这让人想起 traverse Traversable 上的操作,除了涉及两个映射。另外,二元组的遍历似乎只将映射应用于第二个元素:

ghci> f a = Just (a + 1)
ghci> traverse f (0, 1)
Just (0,2)
ghci> traverse f ("Hello", 1)
Just ("Hello",2)

最佳答案

它叫做 bitraverse并标配您最喜欢的编译器。

关于haskell - 如何使用两个映射遍历 Haskell 中的二元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74484581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com