Lambdaカクテル

京都在住Webエンジニアの日記です

scala

State monad in Scala via Scalaz

ScalazのStateモナドを使う機会があったのでメモ。 Stateモナドとは? 状態を含む計算を簡潔に記述する方法 しかもモナド たとえばこのような処理があったとする。 def foo(arg: Int): Int = { val s1 = arg + 10 val s2 = s1 * 2 val s3 = s2 - 4 s3 } 何度…

ScalaでAkkaのSTMを使う その1(Agents)

Akkaでアプリケーションを開発していて、ついにSTMを使う機会があったので、メモを兼ねてこの記事を書きます。 AkkaのDocumentationを訳しました。

ENSIMEで(cyclic-function-indirection char-valid-p)エラー

Emacs用Scala入力支援ライブラリであるENSIMEをセットアップしていたら、Emacsが次のようなエラーを吐いた。 . . . (cyclic-function-indirection char-valid-p) 最初はENSIMEのバグかなにかと必死で考えてみたが、検索しても一件もヒットしないので困ってい…

Akkaのコンフィギュレーションについての覚書

Sometimes it can be useful to include another configuration file, for example if you have one application.conf with all environment independent settings and then override some settings for specific environments. Akka manual (2.9.4 Including…

Akka-basedなライブラリのコンフィギュレーションの場所

以前からAkkaを利用したアプリケーションを作成しているのですが、Configurationの概念をうまく理解できていません。 まず、DHT((分散ハッシュテーブル))を実現するためのライブラリをAkkaとScalaで作成しました。P2PChordというライブラリです。 これが…

Akkaは許してくれないが受け入れてはくれる

Actorの挙動が奇妙奇天烈(おまえがわるい)ので苦しんでいます。 状況 Actorにメッセージを送り、変数(ケースクラス)の内容の一部をごにょごにょして返す 症状 勝手にActorが分身してる インスタンスを生成してるから変数が初期化されてる 初期化されたケ…

なにもしないStateモナド

こんにちは。for式でStateをチェインさせたら面倒なことになりまして。 def proc: State[A, Unit] = { for { st <- get[A] _ <- someActor ! someMessage _ <- println("ほげほげ") st3 <- get[A] } yield st3 } ここの、 _ <- someActor ! someMessage _ <-…

implicit defでインスタンスを変換する

ある型Baseを引数に取るようなコンテクストで他の型のインスタンスを使おうとすると、当然、通常ならばコンパイラがエラーを吐く。 //example class DrinkContent(receipt: String) { val receiptVal = receipt def drink = {System.out.println(receiptVal)…

Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?