Anonymous Function in Scala
Scala is my first functional programming language. Recently I wrote a lot of codes in Scala to build a Data processing/analytics and Machine Learning application using . Apache Spark
Looking at source code like this:
val lineWithSaleStock = textFile.filter(line => line.contains("Sale Stock"))
My first impression was: “Where the hell is line
coming from?”. At previous line, there is no definition of line
variable/value at all.
I decided to look at and found the following Spark APIfilter
method definition:
def filter(f: (T) ⇒ Boolean): RDD[T]
Return a new RDD containing only the elements that satisfy a predicate.
It turns out that filter
method took an argument of boolean function. So, this part should be a boolean function then:
line => line.contains("Sale Stock")
Ahh interesting, line
is the input parameters and it returns a boolean value from line.contains("Sale Stock")
one. And that’s part is a . Scala Anonymous Function
It seems, Scala is have a nice syntax to express the anonymous function. I can express previous function as:
val isContainsSaleStock = (s: String) => s.contains("Sale Stock")
val lineWithSaleStock = textFile.filter(isContainSaleStock)
This from Scala Doc provides good resources about Scala anonymous function. post
TAGS
*post-tags*
- [1]
LINKS
*post-links*
- [1]
- [2]
- [3]
- [4]