The arguments for a function can also be Applied at compile time ; hence the term Partially Applied Function
scala> // Function to multiply 3 arguments
scala> def multiply(x:Int, y:Int, z:Int) : Int = {
| val result = x * y * z
| result
| }
multiply: (x: Int, y: Int, z: Int)Int
scala> // Pass all the arguments at run time
scala> val passallarguments = multiply _
passallarguments: (Int, Int, Int) => Int = <function3>
scala> passallarguments(1, 2, 3)
res15: Int = 6
scala> // Pass only 2 arguments at run time
scala> val passonly2arguments = multiply(_:Int, _:Int, 2)
passonly2arguments: (Int, Int) => Int = <function2>
scala> passonly2arguments(3, 4)
res16: Int = 24
scala> // This does not work
scala> val thisdonotwork = multiply
<console>:55: error: missing arguments for method multiply;
follow this method with `_' if you want to treat it as a partially applied function
val thisdonotwork = multiply
^
c111 > a50 > a11
No comments:
Post a Comment