0

While looking at an open source code I found out that sometimes some people use syntax like this:

Seq[Date => String]

Can you please explain what does this mean and how it is used? I am new to Scala.

user1809095
  • 381
  • 1
  • 5
  • 15

2 Answers2

3
Seq[Date => String]

Is a sequence of functions from Date (taking in a parameter of type Date) to String (returning a String). It is syntactic sugar for Function1[Date, String]:

Seq[Function1[Date, String]]

For example, one could use:

val x = List[Date => String](date => date.toString)

Which, when invoked, would print the toString method of the Date class.

Yuval Itzchakov
  • 146,575
  • 32
  • 257
  • 321
1

It means this is a sequence of Functions from Date to String. In Scala, functions are first-class citizens, which means (among other things) that functions have types. A => B is the notation describing the type of a function that takes an argument of type A and returns a value of type B.

For example, you can write:

val f1: Date => String = d => d.toString
def f2(d: Date): String = d.toString
val s: Seq[Date => String] = Seq(f1, f2)
Tzach Zohar
  • 37,442
  • 3
  • 79
  • 85