Function Can';t`compose`与方法和函数

Function Can';t`compose`与方法和函数,function,scala,methods,composition,Function,Scala,Methods,Composition,我定义了一个方法和一个函数: def print(str:String) = println val intToString = (n:Int) => n.toString 现在我想创作它们 我的问题是,为什么两者都没有: print(_) compose intToString print(_:String) compose intToString 编译 但是: 编译?我想 print(_) compose intToString (print(_)) compose intToS

我定义了一个方法和一个函数:

def print(str:String) = println
val intToString = (n:Int) => n.toString
现在我想创作它们

我的问题是,为什么两者都没有:

print(_) compose intToString
print(_:String) compose intToString
编译

但是:

编译?

我想

print(_) compose intToString
(print(_)) compose intToString
去糖衣

x => (print(x) compose intToString)
(x => print(x)) compose intToString
鉴于

去糖衣

x => (print(x) compose intToString)
(x => print(x)) compose intToString

别忘了你总是可以写
intToString然后打印
@Huw
compose
不同于
然后
f uug
相当于
f(g(x))
f uu,然后g
相当于
g(f(x))
嗯,是的,这就是我的意思;通过颠倒顺序,该方法会自动转换为函数。顺便说一句,如果有人知道语言规范的哪一部分描述了占位符表达式的关联方式,我很乐意阅读它。我只是通过实验来发现它。。。