sách gpt4 ai đã đi

haskell - 应用 <* 的一元等价物

In lại 作者:行者123 更新时间:2023-12-02 17:09:10 29 4
mua khóa gpt4 Nike

读完 Anthony's response 后上a style-related parser question ,我试图说服自己编写单体解析器仍然可以相当紧凑。

所以而不是

reference :: Parser Transc
reference = try $ do string "#{"
a <- number
char ','
b <- number
char ','
c <- number
char '}'
return $ Outside (a,b,c)

我们可以Đơn giản拥有:

reference3 :: Parser Transc
reference3 = liftM3 (((Outside .).) . (,,))
(string "#{" >> number < con số
(char ',' >> number < (<

这与 Anthony 提供的应用版本非常相似:

reference2 :: Parser Transc
reference2 = ((Outside .) .) . (,,)
<$> (string "#{" *> number2 <* char ',')
<*> number2
<*> (char ',' *> number2 <* char '}')

...除了<运算符在概念上类似于 <*定义为liftA2 const意思是“序列但丢弃左侧提供的值(value)和使用值(value)”。

当然<<>liftM2 const来说是一个坏名字。 ,它会建议 <<相当于 flip >>如果我们遵循与 >>= 相同的逻辑和=<< .

我在单个名称下找不到“liftM2 const”。这是因为它没有有用吗?

1 Câu trả lời

我不太明白问题所在。每个 monad 也是一个 of applicative functor,因此您也可以简单地在 Monadic 表达式中使用 (*>) .

(在回答这个问题时(2011 年),Applicative KHÔNG Monad 的父类(super class),因此可能需要添加相应的类实例。 )

关于haskell - 应用 <* 的一元等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870684/

29 4 0
Bài viết được đề xuất: Shopify API : Create hidden product variant
Bài viết được đề xuất: gettext - 如何在Poedit中设置gettext文本域?
Bài viết được đề xuất: logging - Dagger:注入(inject)名为Logger?
Bài viết được đề xuất: haskell - 秒差距组合器和文本/字节串
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com