Scala
OneLiner
centos7

手軽にScala言語を使ってみる

さてさて、今日は12月12日です。
ご存知の方も多いと思いますが、「バッテリーの日」です。

日本蓄電池工業会(現在の電池工業会)が1985(昭和60)年に「カーバッテリーの日」として制定。1991(平成3)年に「バッテリーの日」と名称を変更した。
野球のバッテリーの守備位置が数字で1,2とあらわされることから。

ということで? Javaと仲良さそうなScala言語を。。。

Scala言語(Wikipediaより

オブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。名前の「Scala」は英語の「scalable language」に由来するものである。

ぶっちゃけ全然よくわかってませんが、Javaいれて、ScalaインストールしたらOKです笑
公式サイト

$ scala -version
Scala code runner version 2.12.3 -- Copyright 2002-2017, LAMP/EPFL and Lightbend, Inc.

LL言語のようにワンライナーも使えるらしい。。
ワンライナーの書式は

$ scala -e 'プログラム' 引数1 引数2 ...

1. まずはHelloから

$ slaca -e 'println("Hello")'

2. 引数からもHello

$ scala -e 'println(args(0))' "Hello"

3. パイプで受ける場合 scala.io.Source.stdin を使うっぽい

$ ps aux | scala -e 'scala.io.Source.stdin.getLines.foreach(println(_))'

4. リダイレクトもいけた

$ ps aux | scala -e 'scala.io.Source.stdin.getLines.foreach(println(_))' > ps.txt

5.ファイル読み込みには scala.io.Source.fromFile() らしい

$ scala -e 'scala.io.Source.fromFile(args(0)).getLines.foreach(println(_))' ps.txt

まとめ

5つほど書きましたが、表示が若干遅いのでScalaでワンライナーやる人いないんじゃないかと思ったり。。

そんなこんなで 2017年下半期注目・将来性が高いプログラミング言語6選 の中にもしれっと入ってるScalaをよろしく。