Table of Contents
コップボンとは
Scala作者による教科書(700ページ)読破を目指した漢達の記録 目次↓
コップが書いてあるからコップ本と呼ばれているのだそうである
なぜ山に登るのか。そこに山があるから
やりたいこと:こんな感じのコードをかく
https://github.com/mat-h/ScalaKMeans/blob/master/src/main/scala/kmeans/model/Point.scala
JavaでいうPOJOに毛が生えた程度の実装で、多次元の点の四則演算や平均処理がかけます。
- 実装短い(40行)
- 可読性高い
- Sparkがかける
Java8で全く同じ処理のコードは120行。Java7は未実施・・・
https://github.com/mat-h/KMeans/blob/SoftKMeans/src/dnd/model/Point.java
こんなサイトよりもこっちを見たほうがいい
https://dwango.github.io/scala_text/ ドワンゴの新人研修。ただただ羨ましい。俺には誰も教えてくれなかったぞー
https://github.com/agjacome/playground/tree/master/scala 本書の問題を解きgithubにアップロードするという神のうちの一人
上記の存在に後から気付いて凹んだ
最小セットアップの方法
- Javaをインストール
- scalaをインストール
- Eclipse IDE for Scalaをインストール
- sbtをインストール
最初はこのくらいにしておかないと、いったい何がバグって動かないのか分からない、ただしsbt(simple build tool。Maven的なもの)は必須。以下詳細
初心者をハマらせる罠について
バグっているので決してEclipse IDE for Scalaについてくるscala worksheetを使ってはいけない(一見便利でカッコイイが罠)。
参考:http://stackoverflow.com/questions/20316051/package-object-and-scala-worksheet
今さらこんなやばいバグがあるツールはやばすぎる(語彙の貧困)。普段は動くだけに損切りがムズく泥沼化。
REPLも、cpが通ってないので使わないのが正解。
1 |
find ~/.sbt/boot/scala-2.10.6/ -name *.jar | less |
などと打ってみると、やばさが分かるはず。どうしても自分で-cp通したいときは
1 2 |
scala -cp /path/to # classesの場合 scala -cp /path/to/hoge.jar # jarの場合 |
だが勧めない。
一番楽なのは、sbt runかsbt console。というか恐らく唯一の解。前者はclasspathが通った状態でMainを実行、後者はclasspathが通ったREPLを立ち上げてくれる。
sbt eclipseという罠も存在するが、もちろん動くと思わないほうがよい。(初心者に動かせる代物ではない)
とりあえず動くアプリを作る
Webアプリはこう
1 |
sbt new playframework/play-scala-seed.g8 |
eclipseで書きたければこう
1 2 3 4 5 |
sbt eclipse # このあとeclipseでimport projectして # src/main/scala作って # src directory設定して # で動いた気がする |
jarをとりあえず落としてくる場合はこう
1 2 |
# build.sbtを書いた後に、 sbt compile |
目次(勉強会ログ)
勉強会は全部終わったのですが、記事化してないだけ。おいおい記事化していきます。
- Scalaの言語としてのメリット
- a
- b
- かんたんなAppトレイトの話
- a
- a
- a
- a
- カリー化
- a
- a
- a
- a
- a
- a
- a
- a
- private varでDSLを作る
- 型パラメーター/上限・下限
- a
- a
- a
- a
- a
- コレクションを自分で作る。具体的にはRNA鎖とか
- 抽出子。特に正規表現
- アノテーション
- xmlの操作