How is the symbol => pronounced in scala?

时间:2015-06-30 05:41:43

标签: scala

In the below example, in second line.

scala> val number = List(1,2,3,4,5)
scala> number.map (x => x*2)
res60: List[Int] = List(2, 4, 6, 8, 10)

Also, is the same symbol pronounced differently in different context in scala. Is it any different from How do I pronounce "=>" as used in lambda expressions in .Net

制作Div Clickable

5 个答案:

答案 0 :(得分:6)

显然你可以把它读成"这样"或"进入"根据C#问题。 How do I pronounce "=>" as used in lambda expressions in .Net

发现的另一个想法是" lambda x到x * 2"或" x到x * 2"根据Haskell的问题。 How do you say `\x -> y`?

答案 1 :(得分:5)

我听说在少数scala讲话中称呼fat arrow

修改

根据this answer

  

奥德斯基使用的“官方”术语是“右箭头”。

this page of the official docs也称之为right arrow

答案 2 :(得分:1)

  

称之为'暗示'将是好的

Scala将其用作语法糖。这是一个带参数x并返回x*2的函数。它接近于数学中的域范围映射,即Implication

如果函数f对x进行操作并返回y=f(x),则返回f=(x=>y),即当且仅当x具有适合{{1}域的特定“类型”时然后暗示特定“类型”的结果f

答案 3 :(得分:0)

=>符号在scala中用作暗示。

以下是用于=>暗示的上下文(我知道): -

1。使用匹配

匹配类似于java示例中的switch:

def typeOfNum(num:AnyVal) = num match{
     case i:Int => println("Int")
     case _     => println("Some thing else")
}

2。 Functions(匿名,按名称呼叫)

匿名函数调用类似于java 8 lambda表达式。

按名称呼叫使用implies,如下所述

def callByName(value :=> Int )= println("Given number"+x) 

3。 Currying

Currying是在时间使用参数调用函数的过程。

def curry : T1 => T2 => T3 => R ={
  (x1:T1) => (x2:T2) => (x3:T3) => apply(x1,x2,x3)
}

4。 catch阻止

要匹配catch块中的异常,这类似于case块中的match用法

try{ ---- }
catch{
case t : Throwable => Left(t)
}

5。 variance

与函数调用类似,给定X将其转换为Y,即f(x)=> y。

var f : T => T = (t:T)=> {new T}

其中
˚F-------------->是一个变量

T => Ť------->函数类型的签名(-T,+ T)

(T:T)---------->函数的参数列表

=> {new T} ---->返回方法的类型

答案 4 :(得分:0)

来自MSDN

  

所有lambda表达式都使用lambda operator =>,它被读作   "进入"。