gpt4 book ai didi

haskell - <$ 运算符的翻转版本

转载 作者:行者123 更新时间:2023-12-02 00:01:03 25 4
gpt4 key购买 nike

当我遇到 (<$) :: Functor f => a -> f b -> f a 时,我正在使用 Parsec 并尝试使用 Applicative 和 Functor 提供的各种漂亮的中缀运算符以 Applicative 风格编写它。 (仿函数的一部分)。

对于 Parsec(或我假设的具有 Applicative 实例的任何东西),这会产生类似 pure x <* y 的东西只需说 x <$ y 就可以写得更短一些.

我现在想知道的是,缺少像 ($>) = flip (<$) :: Functor f => f a -> b -> f b 这样的运算符是否有任何具体原因? ,这将允许我表达我的解析器 x *> pure y以更整洁的形式x $> y .

我知道我总能定义 $>我自己,但因为有两个 <**>双重/相反/“翻转的东西”的概念在 haskell 中无处不在,我认为它应该与 <$ 一起出现在标准库中。 .

最佳答案

首先,一个微不足道的问题,你的意思是Functor f => f a -> b -> f b

其次,你去FP Complete's Hoogle ,键入所需的类型签名,然后 discover that it is in the comonad and semigroupoids packages .

不过,我无法告诉您为什么它不在任何更常见的包中。它似乎是包含在更标准位置的合理候选者,例如 Control.Applicative

关于haskell - <$ 运算符的翻转版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21350830/

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