[Maybe a] mToL Nothing = [] mToL (Just xs) = map Just xs 这就引出了一个问-6ren">
gpt4 book ai didi

haskell - "Transposition"的仿函数?

转载 作者:行者123 更新时间:2023-12-03 14:57:46 28 4
gpt4 key购买 nike

最近我不得不编写以下函数:

mToL :: Maybe [a] -> [Maybe a]
mToL Nothing = []
mToL (Just xs) = map Just xs

这就引出了一个问题,是否可以将上述内容概括为:
transposeF :: (Functor f, Functor g) => f (g a) -> g (f a)

我想它只有在有办法“崩溃”时才有效 f (g a)进入 f a ,或者还有其他方法吗?

最佳答案

The Traversable typeclass提供sequencesequenceA操作,为您的问题提供最通用的解决方案,但它们需要不同的约束:

sequence :: (Traversable t, Monad m) => t (m a) -> m (t a)

sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)

关于haskell - "Transposition"的仿函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23246516/

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