2004-05-22
λ. Rena (4)
2/19からだいぶ間が開いてしまったが、久しぶりにちょっといじった。Exclusive XML Canonicalization をバータリーで何とかするために、XMLをファイルに落としてlibxml2のおまけのtestC14Nに丸投げしてみる。approved_20031114の関係するテストケースに通った。
一応「<XPath>(//@* | //namespace::* | /*[3]/*[1]/*[1]/descendant::node())</XPath>」みたいなのをファイルに書き出して「testC14N --exc-with-comments XMLファイル名 XPathファイル名」みたいな感じで呼び出してる。XPathについてほとんど知らないのだけど、これであってる?
ホントはこんなバータリーな方法ではなく自前で Exclusive XML Canonicalization の実装を持ちたいところなのだけど、これ以上REXMLに触れたくないし、どうしたものか。
2006-05-22
λ. 順序数をプログラミング言語の中で実現する
以前に順序数の概念を理解するために書いたコードがあるので、そのときのコードを晒してみます。といっても、当たり前のことを当たり前に書いただけのコードですが。
-- ストリーム data Stream a = Stream a (Stream a) instance Functor Stream where fmap f (Stream h t) = Stream (f h) (fmap f t) unfold :: (s -> (a,s)) -> (s -> Stream a) unfold phi = h where h s = case phi s of (a,t) -> Stream a (h t) -- 順序数 data Ordinal = OZero | OSucc Ordinal | OSup (Stream Ordinal) add :: Ordinal -> Ordinal -> Ordinal add a OZero = a add a (OSucc b) = OSucc (add a b) add a (OSup b) = OSup (fmap (add a) b) mul :: Ordinal -> Ordinal -> Ordinal mul a OZero = OZero mul a (OSucc b) = add (mul a b) a mul a (OSup b) = OSup (fmap (mul a) b) pow :: Ordinal -> Ordinal -> Ordinal pow a OZero = OSucc OZero pow a (OSucc b) = mul (pow a b) a pow a (OSup b) = OSup (fmap (pow a) b) omega :: Ordinal omega = OSup (unfold (\a -> (a, OSucc a)) OZero)
- OSupの引数のストリームには何らかの正規化のようなことを行うべきだろうか?
- 増大列でない列を排除するのは依存型を使うのが自然だろうけど、GADT等を使ってHaskellで無理やりやる方法はないだろうか?
2007-05-22
λ. 休日なので別府へ
午前中はフィットネスルームでまたエアロバイク。 心拍数125を目標に20分間。 109.4kcalの消費。
で、お昼から別府へ。
電車はまた二両編成の電車だった。
私は鉄じゃないので良くわからないが、ちょっと面白い。
それから、別府海浜砂湯に行き砂湯に入る。
砂が重いけど、気持良い。
この重さが指圧と同じ効果を発揮するそうで、それはまあうそ臭いとは思うが、脚の疲れがすっきりした気がする。
写真を撮ってもらったのだけど、まるで死体が埋まっているかのようだ(笑
日本第三位(笑)の別府タワーに昇ってきた。
夕食は「炭焼元祖」で焼肉を食べた。 美味しかった。 当たり前だけど、肉が「牛角」とかとは全然違っている。 特上ロースはトロみたいな感じで美味しかったが、個人的にはあまり好みではなかった。
ホテルは西鉄イン。部屋にネットワークが来ていた。大分に来てからはネットはAir-Edge頼りで、遅さにストレスがたまっていたが、久しぶりにまともな速度でネットに繋がる。
それから、ふとテレビをつけたら、「プロフェッショナル 仕事の流儀」で鈴木成一の回だった。 装丁の仕事ってこんな風にやるのか。これまで全然知らなかった。 某I氏もこんな感じなのだろうか。
2008-05-22
λ. オープン・スペース 2008
ちょっと用事があって東京の方まで来たので、帰りに新宿初台の ICC の オープン・スペース 2008 によってきた。目当ては佐藤雅彦+桐山孝司《計算の庭》*1。
《計算の庭》は、数字の書かれたRFIDタグ内蔵カードを持って庭の中に入り、計算式を表すゲートを通過するごとに自動的に行なわれる演算によって、数字を「73」にすることを目指すもの。 やってみたら、私の結果はこんな感じになった。
適当に手にしたカードは36で、適当に近くにあったゲートを通ったら、それが「×7」のゲートで、数字が結構大きくなってしまった。ので、「こりゃ面倒かなぁ」と思ったのだけど、そこからは案外すぐに終わってしまった。 色々と試行錯誤するのが楽しそうなので、そういう意味ではちょっと物足りなかったけど、面白かった。
他には、グレゴリー・バーサミアン《ジャグラー》*2やカールステン・ニコライ《invertone》は感覚に直接働きかけてきて、すごく刺激的。ちょっと酔いそうだけど。 それから、三上晴子+市川創太《gravicells[グラヴィセルズ]−重力と抵抗》 や インタラクティヴ年表 2008 は単純だけど良かった。
どの展示も普段使わない感覚を刺激される感じで、すごく刺激になる。 しかし、こういうのを設計するデザイナにはどんな世界が見えているんだろうね。僕らとは全く違う世界が見えているとしか思えん。
ψ 石川将也 [でもこの解答、短くていいですね。36の最短経路じゃないかな?]
2010-05-22
λ. Google Code Jam 2010 Round 1A
Aでしょうもないバグで悩んで時間がなくなり、結局Aしか解けなかった orz せめて、あとBのsmallくらいは解きたかったなぁ。1B,1Cで再挑戦か……
A. Rotate
単に言われている通りに書けば良いだけなのだけど、すべての直線の列挙をもれなく列挙する部分にバグを入れてしまって、随分と時間を食ってしまった。A.hs
B. Make it Smooth
どうやって解いたら良いか、全く思いつかなかったんだけど、後でku-ma-meさんに話したら、あっさり方針をたててくれたので、それに従って解いてみた(B.hs)。 これは私には時間内に解ける気がしないなぁ。
最初、B-small-practice.in は解けたと思ったら、B-large-practice.in では incorrect になり、どこを間違ったんだろうと随分悩んでしまった。 何故か、i≧mだったら挿入を利用しても意味がないと思い込んでいたのが原因だったので、修正 (上のコードは修正済み)。
C. Number Game
後で解く。
λ. Real World Haskell読書会 2010-05
今月は12章バーコード認識の続きっぽい。先月は、CLTT読書会第一回と重なっていてそっちに行ってしまったので、RWH読書会は久しぶり。
λ. Google Code Jam 2010 Round 1B
Bで悩んでしまい、またもやAしか解けなかった orz 残すは1Cのみ……
A. File Fix-it
何も考えずに、STモナドで命令的に書いた。 A.hs
B. Picking Up Chicks
後で解く。
C. Your Rank is Pure
本番中は難しそうだなと思って手をつけていなかったけれど、後からPracticeで解いてみたら、案外簡単だった。C.hs
smallは普通にDPで解けて、largeは組み合わせの計算をメモ化したら、時間内に解けた。 けど、100003のモジュロというので安心して32bit整数で計算してたら、乗算で32bitの範囲を超えるケースがあるのを見落としていて、一回Incorrectになってしまった。
ψ ほげ [うぉ]