scala
scalaコマンドによるreplとscalacコマンドでコンパイル出来るコードに違いがある?
Noneとかnil周りを自前で定義するような基本的なコードは、あまりreplで動かない?
Scala関数型デザインの本はあまりscalaコマンドぽちぽち叩く人向けではないのかもしれん。
replで通らないのは、こんなの。
package fpinscala.errorhandling sealed trait Option[+A] case class Some[+A](get :A) extends Option[A] case object None extends Option[Nothing] trait Option[+A] { def map[B](f: A => B) :Option[B] = { this match { case Some(a) => Some(f(a)) : Option[B] case _ => None } } }
package文はreplでエラーになる。とどっかに書いてあったのでまあいい。
他はなあ。何が悪いのかエラーメッセージ見ても全く分からんわ。
<console>:21: error: constructor cannot be instantiated to expected type; found : Some[A(in class Some)] required: Option[A(in trait Option)] case Some(a) => Some(f(a)) : Option[B] ^
書き方がまずいらしいこと以外全く分からん。