【发布时间】:2011-05-04 15:51:05
【问题描述】:
一个简单的问题,Haskell 中是否有一个像美元符号一样工作但优先于左侧的运算符。 IE。而不是
f (x 1)
写成
f $ x 1
我想写成
x 1 $ f
这纯粹是一种风格上的东西。我正在按顺序运行一系列函数,如果我可以从左到右编写它们以匹配我从左到右阅读的内容,那就太好了。如果有这方面的运营商?
[更新] 有几个人问我是否不能定义我自己的。作为回答,我想在重新发明轮子之前检查是否有现有的操作员。
【问题讨论】:
-
这就像 F# 的管道组合运算符。相关讨论(关于为什么它没有内置到 Haskell 中):stackoverflow.com/questions/1457140/…
-
看来我的问题的答案是“否”。谢谢你:)
-
你意识到你在同一个表达式中结合了从左到右和从右到左的应用程序,不是吗?我想大多数人都会对此犹豫不决。反向应用就是所谓的T-combinator。几年前经常用(#)表示,但现在#在GHC中是一个特殊符号,所以不再多用了。
-
你想要:f (g 1)。为什么不只是 f 。 g $ 1?
-
@demi 我相信 OP 正在寻求在从左到右的管道中表达 f (g 1)。
f . g $ 1正好相反
标签: haskell operators dollar-sign