gpt4 book ai didi

haskell - QuickCheck的promote功能的一般情况是什么?

转载 作者:行者123 更新时间:2023-12-04 04:11:06 25 4
gpt4 key购买 nike

具有类似于 QuickCheck 的 promote 结构的仿函数的总称是什么?函数,即以下形式的函数:

promote :: (a -> f b) -> f (a -> b)

(这是 flip $ fmap (flip ($)) :: f (a -> b) -> (a -> f b) 的倒数)。除了 (->) r 之外,是否还有任何具有这种操作的仿函数?和 Id ? (我确信必须有)。谷歌搜索“快速检查提升”只出现了快速检查文档,它没有给出 promote在任何更一般的情况下,AFAICS;在 SO 中搜索“快速检查提升”不会产生任何结果。

最佳答案

(<*>) :: Applicative f => f (a -> b) -> f a -> f b
(=<<) :: Monad m => (a -> m b) -> m a -> m b

鉴于 Monad 是一个比 Applicative 更强大的接口(interface),这告诉我们 a -> f b可以做的事情比 f (a -> b) 更多.这告诉我们 (a -> f b) -> f (a -> b) 类型的函数不能内射。域大于共域,以手动方式。这意味着您不可能保留函数的行为。它只是不适用于泛型仿函数。

当然,您可以表征该操作是单射的仿函数。 Identity(->) a当然是例子。我愿意打赌还有更多的例子,但没有什么能立即让我跳出来。

关于haskell - QuickCheck的promote功能的一般情况是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26264411/

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