読者です 読者をやめる 読者になる 読者になる

scala

case classのコンパニオンオブジェクト

って書けるんですね 知らなかった・・・ コンパニオンケースクラス case classでobjectが定義されてしまってできないと思っていた コンパイラがすげーよ・・・ case class Foo(i:Int) object Foo { def apply() = new Foo(0) } //scala> Foo //res1: Foo.typ…

sbt 0.11

メジャーバージョンアップしたのでめも 今更ですが自分用備忘録として書いておきます。。(大事そうな部分だけ抜粋) https://github.com/harrah/xsbt/wiki/Changes scala 2.7.7 => 2.9.1 に変更(これが一番でかい変更か?) project/plugins/下に配置して…

getDeclaredFieldsとtrait

case classのフィールドをリフレクションで取得するときの話。 以下REPLで scala> case class A(a: String, b: Int) defined class A scala> val a = classOf[A] a: java.lang.Class[A] = class A scala> a.getDeclaredFields res0: Array[java.lang.reflect…

sjsonを使った場合に継承したらtojson・fromjsonできるようにしたかった話

sjonつかってますか みなさんこんばんは。私は連休が終わってしまってとても悲しいです。 ところで、ScalaのsjsonというJSONを扱うライブラリがあるんですが、 型クラスを使って色々やってくれたりして面白くて便利です。 型クラスを使ってクラスのプロトコ…

関数から関数リテラルを取得する

関数リテラルはこんな感じで定義できるのは知っていた scala> (i:Int) => { println(i) } res1: (Int) => Unit = <function1> ただ、関数から関数リテラルを取り出すのはどうやってやるのかずっとわからなかった scala> def d(i:Int) = println(i) d: (i: Int)Unit //こ</function1>…

総称型から本当の型を取得したい

これを参考に なんというか、ほえー package main.scala import java.lang.reflect.ParameterizedType trait G[T] { def getGenericClass: java.lang.Class[T] = { getClass().getGenericInterfaces()(0) .asInstanceOf[ParameterizedType] .getActualTypeAr…

続・sbt 0.9でCompileに依存するタスクを書く(失敗検知編)

sbt 0.9でCompileに依存するタスクを書く - Secret Sword!!!で書いたCompile依存タスクだけど、 Compileに失敗したときにもhoge-taskが実行されてしまってちょっとアレだったのでちゃんとwikiを読んで書き直した。 MapR https://github.com/harrah/xsbt/wiki…

sbt 0.9でCompileに依存するタスクを書く

sbt 0.9むずかしい! sbt 0.7と比べてシンプルになった部分とそうでない部分の差が激しいと思う。 良い子のみんなはstable版の0.10から使い始めるといいよ。悪い子は今すぐsbt 0.9.7を落とそう! もちろん本家はこっち https://github.com/harrah/xsbt このw…

foldLeftのメモ

Design Recipe 別館 Blog - Scala と Ruby で単語の出現頻度を調べて多い順にソートするのプログラム見て勉強になったので自分の中で整理 List中の出現数を求めているプログラムがあって、 val gosanke = List("Goro", "Hideki", "Hiromi", "Hideki", "Goro"…