Scala SchoolでScalaに入門

面白そうだったので

Twitterの中の人が作ったScala Schoolというサイトができたようだ。Twitterは最初Rubyで構築してからScalaに移行したんだっけ。最近PythonistaからScalaオススメという話を聞いていており、ちょっとScalaに興味があったのでここで勉強してみる事にした。
ちなみに今まで静的型付けの言語はちゃんと使った事がなくて、C/C++/Javaをそれぞれちょこっと触ったくらい。
ちまちま進めていて、とりあえず現在の所Basic Continued(2ページ目)のObjectsまでやった(遅い)

やってみた感じとか

  • valとvarの正しい使い分け方がよく分かってない。
  • 対話型コンソールがあるのはいいね。評価した結果が保存されるのはipythonっぽい。
  • 関数の戻り値が最後に評価した式っていうのは新鮮。
  • Partial applicationとCurried functionsはどんな時に嬉しいの?
  • Constructorの概念も、関数定義する他の言語とは違う感じ。
  • Trait = JavaのInterface?
  • apply()はPythonでいう__call__()かな?似た機能を使った経験があると理解しやすくていい。
  • ObjectはSingletonなクラスに似てるけど、引数が渡せなかったりするのでイコールじゃない。

まだsbt consoleの対話環境でしか触ってないけど、楽しみながら遊んでいる。まあ、関数型プログラミングの世界に入ったところで間違いなくつまづくんだろうけど…。

時間見てちょこちょこと進めていきたい。