2009-09-01から1ヶ月間の記事一覧

PならばQ(含意)

C言語で書くと、!P||Qと同じ ifで書くと、if P then Q の後ろに else 1 がついている、という感じか。 なぜ、Pが偽ならば、Qの真偽にかかわらず「PならばQ」が真なのか P Q PならばQ 例「この仕事が成功しなければ辞表を出す」 0 0 1 仕事が成功してかつ辞表…

ThinkPad USB トラックポイントキーボード(英語)

いつの間にかトラベルキーボードの後継が出てた。 値段が下がって、しかも前のよりもキータッチがよさそう。 スライドパッドと一緒にパームレストもなくしてくれれば更によかったが。 製品番号 55Y9003 商品名 ThinkPad USB トラックポイントキーボード(英語…

俺Prologを動かす

俺Lispでcall/ccが動くようになったので、昔call/ccを使ってGauche上で作った俺Prologをこっちで動かしてみた。 repl> (?- (append X Y (a b c)) (write (x = X y = Y)) (fail)) (x = () y = (a b c)) (x = (a) y = (b c)) (x = (a b) y = (c)) (x = (a b c)…

iframeについて

<iframe id=iframeId name=iframeName src='foo.txt' onload='foo(this)'>window.document.getElementById('iframeId')はthisと同じ物で,値は[object HTMLIFrameElement] window.iframeNameはthis.contentWindowと同じ物で,値は[object Window] つまり,idでアクセスしたときとnameでアクセスしたときの参照先は別物。 参照先のUR</iframe>…

カーソル位置取得

IEはselectionStartが使えないのでその対策が必要。 現時点では以下のようにした。 function getpos(obj){ if(obj.selectionStart != undefined) return obj.selectionStart; var range = document.selection.createRange(); if(obj.type == 'textarea'){ va…

内部defineを作る

俺Lispを内部defineに対応させてみた。 repl> (letrec () (define x 1) (define y 2) (cons x y)) (1 . 2) http://kar.s206.xrea.com/lisp/?e=(letrec%20()%20(define%20x%201)%20(define%20y%202)%20(cons%20x%20y)) 以下のような展開処理をしてる。 (letre…