gpt4 book ai didi

haskell - 如何使用 ((.).(.)) 中缀?

转载 作者:行者123 更新时间:2023-12-02 07:24:16 27 4
gpt4 key购买 nike

众所周知:

((.).(.)) :: (b -> c) -> (a -> a1 -> b) -> a -> a1 -> c

我可以像这样使用这个复合运算符前缀样式:

((.).(.)) f g

但看起来我不能像这样使用它的中缀:

f ((.).(.)) g

有没有办法在不定义另一个运算符或在包中使用预定义运算符的情况下使用这种中缀样式?

最佳答案

不,你不能。

haskell 中只有两种中缀运算符:

  1. 作为一个或多个运算符符号的单个标记。对于所有运算符符号,请阅读 What characters are permitted for haskell operators?
  2. 两个反引号之间的单个标识符。标识符是满足特定条件的 token :请阅读 https://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-180002.4

所以 <$>是合法的中缀运算符,`f` , 但不是 `f x` .要测试某物是否是单个标记,请尝试 lex "YOUR_TOKEN" .这是一个很好的测试,但有三个异常(exception)(引用自 the documentation of Prelude ):

  • 限定名称处理不当
  • 八进制和十六进制数字不被识别为单个标记
  • 评论未得到妥善处理

关于haskell - 如何使用 ((.).(.)) 中缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35499942/

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