2012-02-01から1ヶ月間の記事一覧

Groovy で Emulating callable objects

Python では object.__call__ を定義するとオブジェクトを呼び出せるそうだ。 3.4.5. Emulating callable objects Scala でも apply メソッドで同じようにオブジェクトを呼び出すことができる。 Groovy で同じようにするにはどうすればよいか。 そもそもの問…

Sorting by swap distance

ゲーム おはじきを使ったゲームをやっていた。 おはじきに 1 から 100 までの数字を書き缶に入れておく。 缶を振ってから10個とりだして並べる。 両手の指を使っておはじきを入れ替えながら数字の順に並べる。 一応競争なんだけど一斉にやったりしているわけ…

IoLanguage on コマンドプロンプト

.io

Bruce A. Tate 氏の『7つの言語 7つの世界』を読んでいる。 検索してみると結構読まれているようだ。 『404 Blog Not Found:コードについて書く方がコードを書くより読まれる現実』 があるにもかかわらず 書評ではなく、読んでコードが書かれているというこ…

Boyer-Moore algorithm

文字列照合のアルゴリズムは理解しても結果は java.lang.String#indexOf と変わらない。 ただ String#indexOf が O(NM) であるのに対して O(N) で処理できる*1。 Boyer-Moore algorithm (BM法) は KMP 法や Z algorithm と同じく O(N) だが平均比較回数は優…

Z algorithm

理解できると楽しいけど難しくて理解できないことも多い。 理解の種類で分類すると次のようになる。 概要を理解している (API が使える) 仕組みを理解している (実装できる) 様々な問題でそれを適切に使える 大抵 1 はまあ何とかなるし、それさえ分かってい…