In Scala REPL one can find value types:
scala> val x = 1
x: Int = 1
scala> :t x
Int
Yet Scala REPL does not show the type information for functions:
scala> def inc(x:Int) = x + 1
inc: (x: Int)Int
scala> :t inc
<console>:9: error: missing arguments for method inc;
follow this method with `_' if you want to treat it as a partially applied function
inc
^
<console>:9: error: missing arguments for method inc;
follow this method with `_' if you want to treat it as a partially applied function
inc
^
How to find function type in Scala REPL ?
You can write the name of the method and press tab.
gives you:
Following the suggestion will work pretty well:
To give a bit more detail, the reason this is necessary is that Scala maintains a distinction between 'methods', which have native support in the JVM but which are not first class, and 'functions', which are treated as instances of
FunctionX
and seen as objects by the JVM. The use of the trailing underscore converts the former to the latter.