scala - 是否有一个类似于Haskell的$(美元符号)的Scala运算符?

标签 scala operators

有没有办法像在Haskell中使用$强制在Scala中强制运算符优先级?

例如,在Haskell中,您具有:

a b c = ((a b) c)


a $ b c = a (b c)

Scala中有类似的方法吗?我知道Scala本身没有运算符,但是有没有办法实现类似的效果?

最佳答案

中缀vs。表示法通常以类似的方式用于控制优先级:

a b c d == a.b(c).d
a.b c d == a.b.c(d)
a b c.d == a.b(c.d)

对于在中缀表示法中使用的运算符,Scala还具有固定的优先顺序:
(all letters)
|
^
&
< >
= !
:
+ -
* / %
(all other special characters)

通常可以显式选择名称以利用此优势。例如,标准解析器库中的~^^

关于scala - 是否有一个类似于Haskell的$(美元符号)的Scala运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6843010/

相关文章:

scala - 为什么人们定义对象扩展其伴生类?

scala - 使用流中的值动态创建平面映射函数(键控状态)

c - "The only operator that gives back a value is the de-referencing operator"

haskell - Haskell 运算符允许使用哪些字符?

scala - 在 Spark JDBC 读取方法中使用谓词

function - 为什么要如此冗长地声明一个函数?

scala - 通过 cookie 实现更安全的 Play Scala 框架 session 的更好方法

r - 除空 grep 之外的所有内容的子集都会返回空向量

c++ - C++中的Const运算符重载问题

c++ - 为什么表达式 *(b++) 不首先计算 b++?