Scala
これは Finagle Advent Calendar 2012 (だいたい俺) の16日目です。Finagle には HTTP通信用の http サブプロジェクトがありますが、この中に path というパッケージと Path によって Routing を行う RoutingService というものが提供されています。今日はこ…
この記事は Play or Scala Advent Calendar 2012 の9日目です。 はじめに twitter-util には cuncurrent に関する基本的なクラスが提供されています。Scala本体に取り込まれる予定の `Future` や、非同期にオブジェクトを仲介する `Offer` や `Broker` など…
この記事は Scalaz Advent Calendar 2012 の4日目です。どこかで Scalaz7 の package や class/trait の命名規則について書いてというのを見た気がするのでその辺を書いてみようと思います。ちなみにあくまで現状のソースコードを見た上での推測で、MLなり何…
4/4-5 に行われた JavaOne Tokyo 2012 の JVM言語BoFに、スピーカーとして参加してきました。BoFの概要は以下のような感じです。 JavaVM上で動作するさまざまなプログラミング言語 (Groovy、JRuby、Scalaなど) のコミュニティや興味を持つ個人が集まって、各…
パソナテックさんのエンジニアカフェで行われた PlayBay - Play!Framework + WebSocket勉強会に講師として参加してきました。発表スライドDEMOのソースコードUstでも動画がみれるそうです。WebSocketと謳ってるのに全く関係ない pjax の話をさせてもらいまし…
このエントリは Scala Advent Calendar jp 2011 の四日目です。Scala には implicit parameter という機能があります。どういう機能かと言うと、引数に implicit という修飾子をつけると、関数呼び出しの際にその引数を省略することが可能になるというもので…
Scala の extends と with の意味合いがちょっと解りづらかったので整理してみました。先に結論を書いておくと以下になります。 extends の直後は必ずクラスになる トレイトは mixin するために必要な条件を持つ これだけだとちょっと何言ってるんだって感じ…
Loanパターンをfor式で使えるようにしてみたよ に Conceptパターンを足してみました。と言うのも、後始末のメソッドは close() だけとは限らず、リソースによって dispose() や release() destroy() など様々あります。それら全部に対応できるといいなと思っ…
みんな大好きLoanパターンですが、複数のリソースを扱いたい時などネストが深くなってしまうのでちょっと困ってしまいます。そこでLoanパターンをモナドfor式で使えるようにしてみました。 class Loan[T <: {def close()}] private (value: T) { def foreach[U](f: T => U): U = try { f(value) } finally { value.close() </:>…
Twitterでこんな処理はどう書けばいいんだろう?というツイートがあって、Scalaの勉強がてらちょっと書いてみました。仕様は以下の通り 引数で任意の要素型のListを受け取り、そのList内に最も多く出現するオブジェクトを取得する。 最も多く出現するオブジ…
Scalaの勉強を始めました。Liftで何か作ろうとアーキタイプを作成したんですが、どはまりしたのでメモを残しておきます。 mvn archetype:generate \ -DarchetypeGroupId=net.liftweb \ -DarchetypeArtifactId=lift-archetype-basic_2.8.1 \ -DarchetypeVersi…