Scala関数型デザイン&プログラミングのサンプルコード
最近出たこの本
Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)
- 作者: Paul Chiusano,Rúnar Bjarnason,株式会社クイープ
- 出版社/メーカー: インプレス
- 発売日: 2015/03/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る
サンプルがあります。
サンプルには
- テキスト内のソースコード全文
- 練習問題の概要と解答
が入っており、sbtで動いているので一通り実行可能な環境が揃っておりますが、sbt is 何みたいな人、つまり僕からすると結構不親切です。
sbtを勉強しろと言われればそれまでですが、sbt自体についてはこちらを参考にするといいと思います。
サンプルコードを実行したい
以下のコマンドを実行してみましょう。
$ git clone git@github.com:fpinscala/fpinscala.git $ cd fpinscala $ sbt answers/console > import fpinscala.gettingstarted._ scala> MyModule.abs(42) res2: Int = 42
サンプルコード 解答編のGettingStarted.scalaの、MyModuleオブジェクトのabsメソッドを試したい場合のコマンドです。
なお、sbt内でこんな感じでタブを押すと、どんなモジュールが入っているか、そのモジュールにどんなメソッドが入っているか補完してくれます。ソースコードを読んでもいいですが、こういう方法もあるのです。
scala> import fpinscala. applicative errorhandling iomonad localeffects monoids parsing streamingio datastructures gettingstarted laziness monads parallelism state testing scala> import fpinscala.gettingstarted. AnonymousFunctions FormatAbsAndFactorial MonomorphicBinarySearch MyModule PolymorphicFunctions scala> import fpinscala.gettingstarted.MyModule. abs asInstanceOf factorial factorial2 fib formatResult isInstanceOf main toString
(なお、自分の環境はoh-my-zshなので、素のzshやbashだとどうなるかわかりません)
適当でざっくりした解説
- git cloneでソースコードを落とす
- sbt answers/consoleでanswersディレクトリに移動しつつREPLを起動する
- import fpinscala.gettingstarted._でモジュールをimport
公式のREADMEもあわせて読むとよいでしょう。
とりあえずこれ実行しときゃおーけーで終わらせたような感じになりましたが、それで終わらせるのではなくここからは各自勉強していく必要があります。
雑感
sbt→project exercises→runで実行できるものはmainの中で実装されているものだけで、すべてのメソッドがカバーされているわけではありません。まあ、全部のメソッドについて試せるようにコード書いていたら実行結果も何がなんだかわからなくなりそうですし。