2006-10-01から1ヶ月間の記事一覧

Firefox 2.0

かなり速くなってる。すげー

ocamlyaccってocamllexと一緒に使わなきゃいけないんだろうか。lexerは手で書きたいとか思ったりしたらどうするんだろう。うーむ。

うわ

かなり遅くなってる。メソッド一つ増やしたからか。

続き

昨日のは「まだマッチしていない」時と「マッチしなかった」時を区別できていなかった。 修正。

Packrat Parsing

Packrat Parsingの論文の最初だけ読んだ。例がHaskellで書いてあっていまいちよく分からない…。遅延評価に慣れてないしなあ。 それでもArithPackrat.hsをなんとか解読してRubyで書き直してみた。 一応ちゃんと動いてるみたいだが、これがPackrat Parsingにな…

ううむ

これだと必要なDerivをコンストラクタで全部作ってるから微妙に違う気がする。

ブックストッパー

本のページを開いたまま固定するための道具。 今まで爪切りで本を押さえていたが、ちょっと欲しくなった。

mapPartial

RubyにSMLのList.mapPartialに相当するものって無いのかな? module Enumerable def map_partial(&block) block ||= lambda{|x| x} res = [] each{| v | elm = block.call(v) res.push(elm) if elm } res end end [1,2,nil,3,6,nil,8].map_partial{| i | i &&…

特定の文字列が含まれていない行にマッチする正規表現

まず、文字列hogeが含まれている行にマッチする正規表現は、 \v^.*hoge.*$でOK。 それで、含まれていない行にマッチさせたいのだから、 \v^(.*hoge.*)@!$や \v(^.*hoge.*$)@!としたくなるが、うまくいかない。@!は幅を持たないからだ。 だから、 \v(^.*hoge)…

MatchParen

vim

vim7.0から、カーソルが括弧の上にあるときに対応する括弧をハイライトしてくれる機能がついた。これは非常に便利なのだが、ウィンドウを移動してもハイライトが残ってしまうのが気になる。plugin/matchparen.vim を修正すればよさそう。 --- matchparen.vim…

info

vim

infoなんて嫌いだー。あんな変なキーバインドなんて使いたくない。。。 と思っていたら、vimからinfoを利用できるプラグインを発見。 http://www.vim.org/scripts/script.php?script_id=21 おお、これは便利だ。快適に見れる。 しかし、終了時に "no write s…

少女貴族

この地上にviが消えれば生きられない私たち〜

Vimの正規表現

vim

Vimの正規表現が強力。 \%V ヴィジュアルエリアにマッチ。例えば \%Vhoge ってすると、ヴィジュアルエリア内のhogeにマッチ。 \%# 現在のカーソル位置にマッチ。 \%12l 特定の行にマッチ。 \%<13l 特定の行より前にマッチ。 \%>14l 特定の行より後にマッチ。…