OCamlの対話環境でヒストリー機能とか色々使いたくなったのでleditを入れる。 ledit-1.11.tar.gz を落としてmake…すればいいはずなのだが、 $ make camlp4r pa_extend.cmo q_MLast.cmo pa_local.ml -o pa_local.ppo File "pa_local.ml", line 34, characters…
$ google-count -q のだめ{カンター,カウンター,カレンダー}{ビレ,ビル,ピレ,ピル} google-count 4360000 のだめカンタービレ 539 のだめカンタービル 577 のだめカンターピレ 6 のだめカンターピル 109 のだめカウンタービレ 3 のだめカウンタービル 0 のだ…
Objヤバイ # type foo = { count : int };; type foo = { count : int; } # let x = { count = 4 };; val x : foo = {count = 4} # Obj.set_field (Obj.repr x) 0 (Obj.repr 8);; - : unit = () # x;; - : foo = {count = 8}うぎゃ。Obj.set_field (Obj.repr…
かなり速くなってる。すげー
ocamlyaccってocamllexと一緒に使わなきゃいけないんだろうか。lexerは手で書きたいとか思ったりしたらどうするんだろう。うーむ。
かなり遅くなってる。メソッド一つ増やしたからか。
昨日のは「まだマッチしていない」時と「マッチしなかった」時を区別できていなかった。 修正。
Packrat Parsingの論文の最初だけ読んだ。例がHaskellで書いてあっていまいちよく分からない…。遅延評価に慣れてないしなあ。 それでもArithPackrat.hsをなんとか解読してRubyで書き直してみた。 一応ちゃんと動いてるみたいだが、これがPackrat Parsingにな…
これだと必要なDerivをコンストラクタで全部作ってるから微妙に違う気がする。
本のページを開いたまま固定するための道具。 今まで爪切りで本を押さえていたが、ちょっと欲しくなった。
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)…
vim7.0から、カーソルが括弧の上にあるときに対応する括弧をハイライトしてくれる機能がついた。これは非常に便利なのだが、ウィンドウを移動してもハイライトが残ってしまうのが気になる。plugin/matchparen.vim を修正すればよさそう。 --- matchparen.vim…
infoなんて嫌いだー。あんな変なキーバインドなんて使いたくない。。。 と思っていたら、vimからinfoを利用できるプラグインを発見。 http://www.vim.org/scripts/script.php?script_id=21 おお、これは便利だ。快適に見れる。 しかし、終了時に "no write s…
この地上にviが消えれば生きられない私たち〜
Vimの正規表現が強力。 \%V ヴィジュアルエリアにマッチ。例えば \%Vhoge ってすると、ヴィジュアルエリア内のhogeにマッチ。 \%# 現在のカーソル位置にマッチ。 \%12l 特定の行にマッチ。 \%<13l 特定の行より前にマッチ。 \%>14l 特定の行より後にマッチ。…
JavaScriptのString#replaceについてメモ。 String#replaceは第2引数に関数が使える。例:単語をその文字数に置き換える。 "Time is money".replace(/\w+/g,function(str){ return str.length.toString(); });結果 4 2 5正規表現中の()の数をnとすると、第2引…
http://oldriver.org/jsmigemo/を使ってみる。 なんかエラーが出るので、見てみると俺が別のところで Array.prototype.each = function(v){...とかしていたので、for inでまずいことになっていた。 適当に修正したら動いたが、こういう時for inは使って欲し…