ものがたり(旧)

atsushieno.hatenablog.com に続く

in the stream of conciousness

友人の結婚式っていうのは何か対岸の火事を見ているようで楽しい。客がうるさかったけど。ていうか身内ですすんません…。ちなみに、私的使用のための複製が、家庭内における使用を例外的に許容する消極的権利ではなく、文化の創造(と言論の自由*1)を確保するための積極的権利である(私的複製の根拠は、著作権とは異なり、れっきとした人権です)ことを認識してもらいたい*2のと同様に、僕は消極的な保険になるつもりはありません…あー今日も宿題わすれてた…

XQueryまわりでアグレッシブなコードを書くようになってきたせいか、gmcsでもだんだん謎のInvalid ILエラーに拒絶されたりするようになってきた…FLWOR Iterator*3は↓のようなロジックになるのだけど、複雑なコードを書いていると、単体テストとして再現コードを切り出そうとしてもなかなか難しいものがある。

FLWORはすぐ出来るだろうとナメきっていたけど、案外ややこしい存在だ。for/letは複数のバインディング式をもつし、バインディングがすべて終わった段階で、初めてreturn式を評価することが許される。for文については、returnを評価する前にforでiterateされる数だけ変数を再バインドしてやらなければならない。変数をバインドするたびに何かしらのオブジェクトが生成されていたら、非常に効率の悪いコードになってしまう*4。バインドした変数は最後にはバインドを解除してやらないと、変数がゾンビで残ってしまう。for文があるから、先に全部バインディングをすませることもできない。…とまあ、そういう可読性の悪いコードを無理矢理書いたら、Invalid ILになっちゃって先に進められなくなった…

そういえば、ことしのTechEdは行きません。だいたい3年に1度くらいおもろいものがあると思っていれば合ってそうなので…次は2006年?

イケてないと言われているのを知りつつもI, Robotはいちど見てみたい…。F911も一応見ておかないとなぁ…

*1:read anonymouslyの支持者として(しつこいなー)

*2:http://www.din.or.jp/~ginga/law/PersonalUseAndLicense.html

*3:XPathXQueryでは、式を評価した結果をIteratorで返すことが多い。たとえばXPathExpression.Select()が返すXPathNodeIteratorのように

*4:今monoではそうなってしまっている