gpt4 book ai didi

function - 这个函数或模式有名字吗?

转载 作者:行者123 更新时间:2023-12-03 14:43:40 25 4
gpt4 key购买 nike

而不是 fmap ,它将函数应用于仿函数中的值:

fmap :: Functor f => (a -> b) -> f a -> f b

我需要一个函数,其中仿函数具有函数并且值很简单:
thing :: Functor f => f (a -> b) -> a -> f b

但我 can't find one .

这种模式叫什么,我将函数中的仿函数(或应用程序,或单子(monad))应用于普通值?

我已经实现了它,我只是不太明白我做了什么以及为什么标准库中还没有这样的功能。

最佳答案

你不需要Applicative为了这; Functor会做得很好:

apply f x = fmap ($ x) f
-- or, expanded:
apply f x = fmap (\f' -> f' x) f

有趣的是, apply实际上是 flip 的概括; lambdabot替换 flip将此定义作为其对标准 Haskell 的概括之一,因此这是一个可能的名称,尽管令人困惑。

顺便说一句,通常值得一试 Hayoo (与 Hoogle 不同,它搜索整个 Hackage)以查看函数经常给出的名称,以及它是否在任何通用包中。搜索 f (a -> b) -> a -> f b ,它会找到 flip (在 Data.Functor.Syntax 中,来自 functors 包)和 ($#) (来自 synthesizer 包)作为可能的名称。不过,我可能只是使用 fmap ($ arg) f在使用现场。

关于function - 这个函数或模式有名字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10319659/

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