Scalaは書きやすくて実行速度も速いという話なので、これからProject Eulerの問題を解きながら勉強していきます。関数型ということなので、HaskellとPythonと比較しながら進められたらと思います。
まず、ScalaはJavaVM上で動くのでそれをインストールしなければなりません。このへんから落としてきます。それから、Scalaを適当にダウンロードします。インストールしたディレクトリの下のbinにパスを通しておけばよいでしょう。Windowsならコマンドプロンプトを開いて、scalaと打って、
Welcome to Scala version 2.8.1.final (Java HotSpot(TM) Client VM, Java 1.6.0_24) . Type in expressions to have them evaluated. Type :help for more information.
などと表示されればインストール完了です(exitで抜けられます)。
参考資料は、
- 作者: デイビッド・ポラック,羽生田栄一,大塚庸史
- 出版社/メーカー: 日経BP社
- 発売日: 2010/03/18
- メディア: 単行本
- 購入: 14人 クリック: 251回
- この商品を含むブログ (31件) を見る
これを半分くらい読んだのですが、ライブラリの使い方がほとんど書いていないのが残念です。Scalaメモ(Hishidama's Scala Memo)を片手に勉強するとよいでしょう。
最初の一歩
まず、
object test1 { def main(args :Array[String]) { println (1 + 2) } }
といった感じでtest1.scalaという名前のテキストファイルにします。あー、昔やったJavaがこんな感じでしたね。めんどくさいなー。そして、コマンドプロンプトから
>scalac test1.scala
と打ってコンパイルします。10秒以上かかるんですが。そうすると、test1.classというファイルがでてきています。Javaですね。これをJavaVM上で実行するわけです。コマンドプロンプトから次のように打ちます。
>scala test1
1秒くらいかかって次のように表示されました。
3
ちゃんと動きましたね。
しかし、こんなオブジェクト指向のコードは書いてられないですね。と思ったら次のようにも書けるようです。
println (1 + 2)
これをtest2.scalaという名前で保存して、scalacでコンパイルすると怒られます。そうではなく、
>scala test2.scala
と打ちます。そうするとメモリ内でコンパイルして実行してくれるんですかね。ちゃんと、
3
と表示されます。4秒以上かかるんですが。
タスクマネージャを見たら、java.exeってのが80MB以上メモリを使っています。これは凶悪ですね。消しましょう。そのあと同じコマンドを打つと、11秒くらいかかりました。しょうがないですね。JavaVM上で動くというのが本当に残念です。.scalaの拡張子をscala.batに関連付けておけば、
>test2.scala
でいけます。