Takuya71 のぶろぐ

外資系ソフトウェア会社で働いてます、認定スクラムマスター

scalaz

State Monad 実験 in Scalaz

State Monad を試す 環境 Scalaz7 M5 + Scala 2.9.2 どこかで使ってみたい。

入れ子になった型を入れ替える(Scalaz)

M[N[_] というようなデータ構造のデータがあって MとNを入れ替える場合 traverse(identity) を使うと簡単に出来る。 scala> Option(List(1,2,3)).traverse(identity) res6: List[Option[Int]] = List(Some(1), Some(2), Some(3)) scala> List(1.some, 2.some…

Scalaz IdOps の |>

IdOps の |> Scalaz では 以下のような構文を実行すると ある値を |> で右側の式に渡すようなことができます。 "hoge" |> (_.size) 何が起こっているかというと -Xprint:typer をつけてコンパイラの結果をみると 上記の式は scalaz.this.Scalaz.ToIdOps[java…

Scala 型パラメータによる 関数の一般化 例

Monoid, 型パラメータ, implicitを使った加算する関数の一般化 半年ぐらい前ですが、Scalaz の解説のプレゼンテーションである、 Scalaz Presentationという プレゼン動画を見ました。 Nick Partridgeさんというオーストラリアの方が、約1年半前に Scalazの…

Scalaz7.0.0-M3では ApplicativeBuilder の |@| が deprecation となった

最近 scalaz がお気に入りでいろいろ試しているのですが、 昨日 scalaz-7.0.0-M3 に上げたところ、 |@| を使うと deprecation の 警告がでるようになりました。 scala> 1.some |@| 3.some warning: there were 1 deprecation warnings; re-run with -depreca…