Function Scala是否有类似于Haskell';是`$`?
Scala是否有类似的运算符 是的,上面写着“申请” 这方面没有标准的标点符号操作符,但通过库PIMP添加标点符号操作符非常简单Function Scala是否有类似于Haskell';是`$`?,function,scala,operators,Function,Scala,Operators,Scala是否有类似的运算符 是的,上面写着“申请” 这方面没有标准的标点符号操作符,但通过库PIMP添加标点符号操作符非常简单 class RichFunction[-A,+B](fn: Function1[A, B]){ def $(a:A):B = fn(a)} implicit def function2RichFunction[-A,+B](t: Function1[A, B]) = new RichFunction[A, B](t) 一般来说,尽管Scala代码比Java密
class RichFunction[-A,+B](fn: Function1[A, B]){ def $(a:A):B = fn(a)}
implicit def function2RichFunction[-A,+B](t: Function1[A, B]) = new RichFunction[A, B](t)
一般来说,尽管Scala代码比Java密集得多,但它并没有Haskell那么密集。因此,创建诸如“$”和“.”之类的运算符的回报较少。为了使问题独立,如果您能解释Haskell构造是/做什么就好了。$显然是正确的关联性,优先级较低。
$
的一个更大的优势是它在运算符部分中的使用:(f$)和($x)
,这在Scala中是不存在的(您可以编写f(
)和(x)
,但在Haskell中不能这样做)。
fn apply arg
class RichFunction[-A,+B](fn: Function1[A, B]){ def $(a:A):B = fn(a)}
implicit def function2RichFunction[-A,+B](t: Function1[A, B]) = new RichFunction[A, B](t)