Initial Values を利用して Nothing 型の値を作ることは可能か

どうでもいい話な上に長いので、暇な人だけどうぞ。

virtualizing pattern matcher について話しました

Scala 勉強会第 67 回で virtualizing pattern matcher について話しました。スライドはこちら。まあ、まだまだ開発中という感じですね。追記:完全に仕様が変わりました。scala-virtualized の仕様に近くなったのかなあ。

higher-kind type parameter に渡せるもの

小ネタです。以下のトレイトの型パラメタに渡せるのはどのようなものか。 class T[M[_]] 型パラメタを一つ取るジェネリックなクラス。トレイトでもいいけど。これは普通。 class C[A] class TC extends T[C] 型パラメタを二つ取るジェネリックなクラスで、片…

Paginate されたコンテンツを処理する

Paginate されたコンテンツを必要な分だけ取ってくる、みたいな javascript + jQuery の code snippet です。特に面白いものではないです。 function get_recursive(gen_url, proc, need_more, cont, acc) { var aux = function(acc, count) { // 変な need_…

ヘルプ!Scala はアイドル

追記:trunk では直っているようです http://groups.google.com/group/scala-language/browse_thread/thread/3652db621ae18cd5 まあでもメソッドのシグネチャはちゃんと書いたほうがいいよネグループではない。アイドルグループなのは Lisp(LISP) です。それ…

jQuery versus invalid html

なんの変哲もない以下のコード。 var a = $('html').find('some selector'); $.get(document.URL, function(html) { var b = $(html).find('some selector'); }); a の結果と b の結果が異なる、といったら驚きますよね。ところが現実は非情です。ページによ…

COMFRK VOL.3 「今夜は俺とお前でマルチパラダイムだからな」訂正と補足

いくつか誤植やら何やらが報告されています。ケジメ!ケジメ!いやでも実際大変でしたし…スイマセン… 9 ページ目、ナゾの url これはなんなんでしょうね…ナゾです。 10 ページ目、let ret て let rec の typo じゃないの? typo じゃないです!紛らわしかっ…

PartialFunction in Haskell

#scala にあって他の関数型言語には見られない機能として、PartialFuncttionがあるが、良いものだと思う(命名は良くない。CheckableFunctionとか他の名前が良かった気がする)。おかげでcollectみたいなメソッドが定義できるし、他にも応用が利く。 という @k…

今年読んだ面白CS論文紹介カレンダー 9 日目みたいなもの

今年読んだ面白CS論文紹介カレンダー 9 日目?ですか?カレンダーとはなんぞやという感じですが、いつ書いてもいいっていわれたので今書きます。皆さんが大変真面目な紹介をしているところ非常に心苦しいのですが、ボクにはとても面白げに紹介なんてするでき…

Re:ParsecでApplicativeを使ってみる

ParsecでApplicativeを使ってみる追記されたコードもう Functor しか使ってない…!ということで、こういうのはどうでしょう。 parseSExp :: Parser Int parseSExp = between (char '(') (char ')') expr where expr = foldl1 <$> op <* spaces <*> nums op =…

COMFRK VOL.3 Advent Calendar 四日目

少し遅れましたが COMFRK VOL.3 Advent Calendar 四日目です。書くの忘れてました。一年半ほど前から Haskell 界隈で Iteratee という入力処理手法が流行っています。Haskell Advent Calendar 17 日目の記事でも言われていますが、まさに Iteratee 戦国時代…

COMFRK VOL.3 Advent Calendar 二日目

COMFRK VOL.3 Advent Calendar 二日目です!え、一日目?えへへ…実際窓に。そんなわけで今日は COMFRK VOL.3 の記事を紹介したいと思います!タイトルは「今夜はお前と俺でマルチパラダイムだからな」です。ユウジョウ!関数型プログラミングとオブジェクト…

scalaz.ApplicativeBuilder メモ

fmap :: Functor m => (a -> b) -> m a -> m b apply :: Applicative m => m (a -> b) -> m a -> m b build2 :: (Functor m, Applicative m) => m a -> m b -> (a -> b -> c) -> m c build2 ma mb f = apply (fmap f ma) mb build3 :: (Functor m, Applicati…

なんかメモ

ヤック殺人事件。http://hackage.haskell.org/packages/archive/derp/0.1.5/doc/html/src/Text-Derp.html parser :: (Ord a) => ParserRec Parser a -> FPValue Bool -> Parser a parser p n = fix $ \ self -> Parser p n (memoFun (deriveImp self)) (comp…

Open Recursion in scala もしくは関数型もオブジェクト指向も仲良くしようよぉのお話

追記:これの完全版みたいなのが comfrk vol3 に載ってます。「今夜はお前と俺でマルチパラダイムだからな」とかいうのです。あまりにもアウトプットしなさすぎなので適当に何か書きます。フィボナッチ関数を scala で object-oriented な感じで書いてみます…

Coq のモジュールさんの気持ちがわかりませんのこと

coq

あまり元気ではないですが元気です。さて世間は猫も杓子も証明という感じで大変恐ろしい、ところがボクもご多分にもれず、ということで Coq です。 Module Type A. Parameter n : nat. End A. Module B : A Definition n := 0. End B. Theorem B_n_eq_zero :…

Bitmap を SoftReference で管理すべきではない

追記:3.0 より Bitmap はネイティブヒープを利用しなくなりました。キャッシュは 3.1 以降なら LruCache を使えば大体問題ないと思います。手が痛いので、簡単に。一年以上前の記事ですが、CacheオブジェクトにはSoftReferenceをとか、最近だと、WeakHashMa…

"implicit" を調べる

scala 子ネタです。implicit conversion も implicit parameter も便利なわけですが、如何せんどこから降って沸いてきたのか分からない、ということが多いのが困り物です。 例えば Array[T] の先頭要素が欲しいときには、 scala> Array(1, 2, 3).head res0: …

icfpc 2011 に参加しました

なんとも情けない結果になりましたが参加はしました。仕様言語はシェルスクリプトです!!実際にはシミュレータを scala で、シェルスクリプトを生成するものを ruby で書きました結局 official には submit はしませんでした。unofficial なサーバーに、ひ…

scala で gnu global を使う

gnu global がないと生きていけない体なので scala でも使えるようにしました。ヤッタネェ!https://github.com/lyricallogical/global_scala_support手抜き実装なので、宣言と定義の区別がつかず、宣言も全て定義扱いになってしまいますが、勘弁してくださ…

AlertDialog.setMessage の罠

例えば、メッセージ毎に AlertDialog を生成するのは無駄なので、prepare で適宜メッセージを差し替える、というようなコードを書くことがあると思います。 private Dialog createAlertDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(th…

第1回JVM ソースコードリーディングの会に参加しました

ちょっと準備不足感は否めなかったかな的な、でも楽しかったです。途中少し出てきた話のまとめ。http://www.google.com/codesearch#sDZn6PDCLEM/src/share/vm/oops/cpCacheOop.cpp&q=cpCacheOop.cpp&type=cs&l=178というのがあって、 m:~/src/java % cat Hog…

HandlerThread

適当にループまわして適当にディスパッチされたタスクを適当に処理したい、みたいな時は HandlerThread クラスを使いましょう。そんなに難しいクラスではなくて、基本的には、 @Override public void run() { Looper.prepare(); Looper.loop(); } みたいなも…

git かわいいよ git

git

例えば tests/ 以下のテストケース群があまりにも乱雑としているので、ディレクトリ分けたりして整理しよう、とかするわけです。 こういうとき svn だと一々 svn move しないといけなくてストレスフルなわけですが、git なら普通に mv とかで整理したあとで…

他人がプログラミングしている所を眺める会

http://partake.in/events/01c8d348-ebcb-4151-9183-d63fd8a2db50主催しました。おつかれさまでした!

SH-03C(LYNX 3D) のマルチタッチ時のバグ

はまってしまいました。端末情報は↓ ファームウェアバージョン 2.1-update1 ベースバンドバージョン 1.00 カーネルバージョン 2.6.29-perf build@Sharp #1 ビルド番号 01.00.03 基本的には問題ないようなのですが、ID が 0 の(つまり一番最初にタッチされた…

trait

http://twitter.com/#!/kmizu/status/64556087201906688http://twitter.com/#!/kmizu/status/64556399484612609とりあえず調べてみました。

オブジェクト指向ラヴのこと

鼻が詰まって目が覚めてしまいました。時間あるので、朝から意識高くブログで釣り記事を書いていきます。オブジェクト指向結構好きだという話です。アクセスコントロール。カプセル化という言葉は何かイマイチ響きがよくないと思うので勝手に言い換えます。 …

scala で android アプリケーションを作ってみる

scala はあまり知らないんですが、ちらと遊んでみました。

android でテスト用データを用意し利用する

比較的どうでもいい系の情報ですが Web で日本語になってないぽいので、一応書いておきます。android のテストを記述する際に、テスト用データをどうやって用意すべきか、というのがあるわけですが、単純にテストプロジェクトでも assets ディレクトリに配置…