I am still fairly new to
Scala so take what I write in this article with a grain of salt.
The more I learn Scala
to more I like it and here is an example of why…
The following Scala Code
will read in a file (whos name is the first command line argument) and read in
every line as a String Array, convert it to a List[String] then convert that to
a List[Int] (this assumes the file has a
valid integer on each line. Then it
prints out the Int list adding +1 to each number as it prints it out.
import scala.io.Source
object ListStringToInt{
def main(args: Array[String]) {
val sList = Source.fromFile(args(0)).
getLines.toList.map((s: String) => s.toInt)
sList.foreach((x: Int) => println(x + 1))
}
}
|
I like this line, it
simple and short.
val sList = Source.fromFile(args(0)).
getLines.toList.map((s: String) => s.toInt)
|
Going over it bit by bit
Read from a file
Source.fromFile(args(0))
|
Get the Lines from the file and convert them into a list,
this is a List of Strings
getLines.toList.
|
Take the List of Strings and convert it to a List of Ints by
running each String in the list through the function (s: String) => s.toInt
.map((s: String) => s.toInt)
|
This portion of the code
can be further simplified by writing it in the following way
.map(_.toInt)
|
Cleaning up the rest of
the code you get the following
import scala.io.Source
/**
* Created by patman on 5/12/2014.
*/
object ListStringToInt{
def main(args: Array[String]) {
val sList = Source.fromFile(args(0)).getLines.toList.map(_.toInt)
sList.foreach(x => println(x + 1))
}
}
|
I think this simple one
liner is very effective and easy to read once you become a little familiar with
Scala (I am by no means an expert yet)
I have been guilty of
creating one liners in code that, though they are concise, are difficult to
read. I think the Scala language and
libraries do a very good job in making readable one liners.
References
No comments:
Post a Comment