Scalaコップ本を極める

コップボンとは

Scala作者による教科書(700ページ)読破を目指した漢達の記録 目次↓

2016年12月~2017年7月(第一回)の感想はこちら

コップが書いてあるからコップ本と呼ばれているのだそうである

なぜ山に登るのか。そこに山があるから

やりたいこと:こんな感じのコードをかく

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が通ってないので使わないのが正解。

などと打ってみると、やばさが分かるはず。どうしても自分で-cp通したいときは

だが勧めない。

 

一番楽なのは、sbt runかsbt console。というか恐らく唯一の解。前者はclasspathが通った状態でMainを実行、後者はclasspathが通ったREPLを立ち上げてくれる。

sbt eclipseというも存在するが、もちろん動くと思わないほうがよい。(初心者に動かせる代物ではない)

 

とりあえず動くアプリを作る

Webアプリはこう

eclipseで書きたければこう

jarをとりあえず落としてくる場合はこう

目次(勉強会ログ)

勉強会は全部終わったのですが、記事化してないだけ。おいおい記事化していきます。

  1. Scalaの言語としてのメリット
  2. a
  3. b
  4. かんたんなAppトレイトの話
  5. a
  6. a
  7. a
  8. a
  9. カリー化
  10. a
  11. a
  12. a
  13. a
  14. a
  15. a
  16. a
  17. a
  18. private varでDSLを作る
  19. 型パラメーター/上限・下限
  20. a
  21. a
  22. a
  23. a
  24. a
  25. コレクションを自分で作る。具体的にはRNA鎖とか
  26. 抽出子。特に正規表現
  27. アノテーション
  28. xmlの操作