如果我使用 F# 解释器,我可以定义一个简单的函数,如下所示:
> // Function to check if x is an integer multiple of y
> let multipleOf x y = (x % y = 0);;
val multipleOf : x:int -> y:int -> bool
如果我知道 F# 解释器会话中存在一个函数,但我不确定它的精确类型,我可以通过键入函数的名称让解释器给我它的类型:
> // I can't remember the type of the function multipleOf!
> multipleOf;;
val it : (int -> int -> bool) = <fun:it@12-1>
显然,这告诉我该函数multipleOf
是 type int->int->bool
。在 F# 解释器中工作时,我发现这非常有用,可以作为记忆记忆的工具。
但是,我似乎在 Scala 的 REPL 中找不到类似的功能。当然,我可以很容易地在 Scala 中定义一个等效函数:
def multipleOf(x: Int, y: Int) = x % y == 0
但是,如果我在 Scala REPL 会话中进行了十分钟并且不记得函数的类型,则键入multipleOf
不会提供有关类型的信息(实际上,它会给出错误)。同样,:type multipleOf
告诉我没有任何用处。