2007-08-12から1日間の記事一覧

Concurrent Clean : Finger trees : listToTree

最近、こればっか。 リストを与えられて、そこからFinger treeを作るという関数 listToTree を作るとして、どうやって作るか。 単純には、pushLを連続的に適用して、 listToTree ls = foldr pushL Empty lsとやって、pushLがO(1)なのでこれでもよいのだ(し…

Concurrent Clean : Finger trees : appendR

右からリストで与えられた要素を追加するというもの。 FingerTreeというのは、左の方はリストと同順で並んでいるけれど、右の方はリストと逆順で並んでいるので、右から追加するという操作はちょっと複雑な動きになる。その辺を効率よく操作したいと思って、…

Concurrent Clean : Finger trees : 正格リスト

Finger treeの定義は、次のようにしていたのだけれど、 :: Tree v a = Empty | Single !a | Deep v !(Digit a) (Tree v (Node v a)) !(Digit a) :: Digit a :== [a]Digitの所が遅延リストだったので、不必要な非正格性が残ってしまっていた。そこで、正格リ…

Scala : Re: Scalaにする

http://cappuccino.jp/keisuken/logbook/20070812.html#p04 3D CMSの主要部分をScalaにする(暴走気味. すばらしい。

Haskell : 回文を見つけるアルゴリズム

http://johanjeuring.blogspot.com/2007/08/finding-palindromes.html 文字列に含まれる回文を線形時間で見つけることができるアルゴリズムだそうです。

Java : JDBC

http://d.hatena.ne.jp/odz/20070810/1186764019 http://d.hatena.ne.jp/bleis-tift/20070812/1186847743 また危険な話題に手を出しているような気がしますが・・・ RDBというのは並行アクセスを前提としたシステムなので、トランザクション分離レベルという…

おぶじぇくとしこー : 名詞抽出法

名詞抽出法なんてものがあるのかっ。 なんていうか、くらくらするな。いままで考えたこともなかったよ。 「オブジェクト指向 = 英語の語順」な思考はこのへんにも元凶があるのかな。 - 本来の使いかたは、クラスの候補を探すための手がかりとして使うという…

Concurrent Clean : Finger trees

実装完了。sourceforgeのリポジトリにチェックインした。 https://cleanoptenv.svn.sourceforge.net/svnroot/cleanoptenv/trunk/Data - String2も作って、チェックインした。