2009-04-01から1ヶ月間の記事一覧

Key-Value Store の統一インターフェイスが欲しい

最近 Tokyo Cabinet/Tokyo Tyrant で遊んでいます。分散楽しいです。最初は Key-Value型のデータストアっていっぱいあってどれがいいかなーとか比較してたりしたんですが、やっぱりエンティティをシリアライズするコストがどうにも気になって。BigTable みた…

List モナドの mplus サンプル in JavaScript

前回の記事 で Listモナドと Maybeモナドの mzero/mplus について書きましたが、Maybe についての例しか出してなかったですね。なので List モナドの例についても紹介しておこうと思います。前回と同じくクローン羊の例を使います。 羊を表す Sheep クラスが…

Purely Functional Data Structures 写経 5.4 Splay Heaps

Purely Functional Data Structures作者: Okasaki出版社/メーカー: Cambridge University Press発売日: 1999/07/01メディア: ペーパーバック購入: 5人 クリック: 46回この商品を含むブログ (25件) を見るHaskell写経の続きです。5.3章は3.2章の Binomal Heap…

JavaScript でモナド List と Maybe に mzero と mplus

JavaScript で Maybe JavaScript で Listモナド に続く Monadic Programming in JavaScript シリーズです。今回は List と Maybe に Haskell で言う mzero と mplus を用意してみましょう、というお話。と、ちょっとその前に。今までの記事では Haskell の r…

JSONスキーマの存在意義

檜山正幸さんがJSONスキーマについて丁寧に解説されています。この記事のブコメを見てみると XML Schema が在るんだし軽さがウリの JSON にそんなの必要なくね?的なコメントが散見されます。実を言えば私自身もこの記事を最初に見たときにそう思いました。…

Array.prototype.map の自前実装

javascript array map 自前 という検索ワードでのリファラがあったので map の自前実装でも書いてみます。 とはいえ、すでにやってる方がいらっしゃるので Arrayオブジェクトのmapメソッド - バリケンのJavaScript日記 多元配列を一元配列に変換 (JavaScript…

countUp できる CountDownLatch

先日、CountDownLatch の Count をインスタンス生成してから決定したいというケースがありました。 JDK標準で提供されているモノでなんとかならないかと思ったのですが、要望に合致するものが見つけられなかったので書いてみました。 import java.util.concu…

Purely Functional Data Structures 写経 5.2 Queues

Purely Functional Data Structures作者: Okasaki出版社/メーカー: Cambridge University Press発売日: 1999/07/01メディア: ペーパーバック購入: 5人 クリック: 46回この商品を含むブログ (25件) を見るHaskell 写経の続きです。4章は遅延評価の章で、Stand…

Cache のクリア

以前に紹介した汎用オブジェクトCache [id:gakuzo:20090226:1235667999] ですが、キャッシュのクリアが無いと使えないよ!というご指摘を受けました。キャッシュのクリアについては、Cacheインスタンス自体を破棄すれば OK です。例としてはこんな感じに。 p…

Purely Functional Data Structures 写経 3.3 Red-Black Trees

Purely Functional Data Structures作者: Okasaki出版社/メーカー: Cambridge University Press発売日: 1999/07/01メディア: ペーパーバック購入: 5人 クリック: 46回この商品を含むブログ (25件) を見るHaskell 写経の続きです。P24〜P29赤黒木です。赤黒木…

prototype.js の Enumerable.invoke と Enumerable.pluck

昨日の記事 [id:gakuzo:20090403:1238715610] に書いた callMethod ですが、似たような発想のメソッドが prototype.js には用意されているようですね。昨日の例だとこんな使い方ができるようです。 customers.map(callMethod("isOver", 30)); // このコード…

NTTドコモ、メールアドレスのルールを変更 〜 ピリオド連続などが使用不可に

http://www.rbbtoday.com/news/20090403/59059.htmlついに!ついに!!あとは au か……。

callback の method call

jQuery や prototype.js を始め、JavaScript で高階関数を扱うライブラリも最近では一般的になりました。そのようなライブラリでは大抵 callback 関数に引数でオブジェクトを渡すことが多いのですが、JavaScript はれっきとしたオブジェクト指向言語なので、…

Purely Functional Data Structures 写経 3.2 Binomial Heaps

Purely Functional Data Structures作者: Okasaki出版社/メーカー: Cambridge University Press発売日: 1999/07/01メディア: ペーパーバック購入: 5人 クリック: 46回この商品を含むブログ (25件) を見るPurely Functional Data Structures の Haskell 写経…

高階関数で書き直し

昨日の JavaScript で Listモナド [id:gakuzo:20090401:1238599220] ですが、サンプルのために expandCharClass と expandAltWords をベタっと書きましたが、本来ならもう少しすっきり書きたいですね。先に String.prototype.toArray を定義しておきます。pr…

モナドは関数合成の抽象化

以前にモナドについて書いたのですが、どこかで書かれていた「モナドは関数合成の抽象化」という表現がなんとなくしっくりきました。合成戦略を各モナドインスタンスが担う、と。それから do構文について。最初、do構文は複文を実現するための機構なのかな、…

Purely Functional Data Structures 写経 3.1 Leftist Heaps

Purely Functional Data Structures作者: Okasaki出版社/メーカー: Cambridge University Press発売日: 1999/07/01メディア: ペーパーバック購入: 5人 クリック: 46回この商品を含むブログ (25件) を見る続きです。P17〜P20まずは Heap の signature から。 …

JavaScript で Listモナド

[id:gakuzo:20090223:1235405890]「JavaScript で Maybe」に続く、Monadic Programming in JavaScript 第二弾。JavaScript で Listモナドです。さっくりコードに行きましょう。 Array.ret = function(obj) { return [obj]; } /** jQuery版 */ Array.prototyp…