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

たくさんから1つ選ぶ UI

via Latest topics > ブラウザのタブの改革 - Firefox.nextへの道:タブをより良くする。 - outsider reflex 過剰な要約「扱うタブの数が増えていくと、適切な UI は選びやすいタブ->検索になってく」 なーんとなくでしかないんだけど、と前置きしておいて、…

minibuffer で何かする

コマンドとか実行中に minibuffer で入力させて文字列を受け取るのに、なんか色々する方法。単に文字列を入力させるなら `completing-read` 使えばいいんだけど、キーマップを変更したりインクリメンタルに何かしたりするには `*enter-minibuffer-hook*` と …

こんにちは iPod touch

数ヶ月以内に新型が出るという噂は見なかったことにして、8G を購入。2台あっても開発用とか色々遊べそうだし、新型がよだれモンだったらその時はその時ってことで。何がしたかったかとゆーと: a) twitter とか 2ch とか LDR とか mail とかの流入系を iPod …

macroexpand-all

執拗な再帰マクロ展開 - 象徴ヶ淵 を見て「あー、あー(詳細は後述)」とか思ったので書き始めてみた。のだけど思ったよりめんどかったので、途中まで書いて GitHub に突っ込んどいた=>http://github.com/bowbow99/xyzzy.macroexpand-all/treeとりあえず単純…

(setf (nthcdr N LIST) VALUE)

subseq は新しいリストを作る・・・だと? - 日々ごちゃごちゃと考える の最後に書いた (setf nthcdr) は、なんか罠くさいなーとおもってたらやっぱり罠だった。 http://cadr.g.hatena.ne.jp/g000001/20090719/1248011028 (SETF NTHCDR) - kozima の日記 - c…

subseq は新しいリストを作る・・・だと?

(eq (nthcdr 1 #1='(0 1 2)) (subseq #1# 1)) | nil (eq (nthcdr 1 #1='(0 1 2)) (nthcdr 1 #1#)) | t (eq (subseq #1='(0 1 2) 1) (subseq #1# 1)) | nil 上の1番目から明らかなように、subseqで切り出されたものはnthcdrで分けられたものとは異なる。2番目…

setf-values と symbol-macrolet を公開しました。

http://bowbow99.sakura.ne.jp/xyzzy/packages.l symbol-macrolet が setf-values に依存してます。どっちも require するだけで使えます。使い方は使いたいと思うような人ならわかるだろうという希望的観測に基づいてまだ書いてません。ごめんなさい。さっ…

symbol-macrolet 内外での macrolet 問題

symbol-macrolet と macrolet symbol-macrolet 内で定義された symbol-macro は、macrolet で定義された local-macro の 展開時に変数として参照される symbol 展開後に変数として参照される symbol の両方を symbol-macro として展開する。 手順 macrolet …

macroexpand と environment object

ちょっと諦め気味なので、メモだけ残しておく。昨日からメモりすぎだけど。こんなマクロを書いた。 (defmacro merge-env (&environment env &optional outer) (if outer `(macroexpand '(merge-env) ,outer) env)) merge-env が呼ばれた環境の environment-o…

symbol-macrolet

symbol-macrolet の挙動をちゃんとわかってないことが判明したので sbcl で調べてみた。 operator は展開しない (defun foo () 'DEFUN) => FOO (symbol-macrolet ((foo 'SYMBOL-MACRO)) (list foo (foo))) => (SYMBOL-MACRO DEFUN) (symbol-macrolet ((foo '…

symbol-macrolet で shadowing しなきゃならん special-form

書いてて気づいたんだけど、単純に除外するんじゃなくて、たとえば (let (foo ...) ...) なら foo は symbol-macro じゃないけど他の bar とかは symbol-macro になるから、bar とかはちゃんと置換しなきゃいけないんだ。うん。で。 関数で lexical scope を…

symbol-macrolet と lexical scope

symbol-macrolet lexically establishes expansion functions for each of the symbol macros named by symbols.symbol-macrolet は、symbols で命名された symbol-macro を展開する機能を、レキシカルに確立します。 CLHS: Special Operator SYMBOL-MACROLE…

symbol-macrolet 内で macrolet したら(sbcl にて)

(symbol-macrolet ((foo (+ 1 2 3))) (macrolet ((foo () `,foo)) (list foo (foo)))) => (6 30) (symbol-macrolet ((foo :symbol-macro)) (macrolet ((foo (foo) `(list ,foo foo))) (foo :local-macro-arg))) => (:LOCAL-MACRO-ARG :SYMBOL-MACRO) ふむ (s…

netinstaller 対応メモ

とりあえず /site-lisp/ni/howto.txt 読め。話はそれからだ。 必要なもの packages.l 配布物のアーカイブ サイト 名前どうしよう?「ローカルでテストするだけだからいいや」とてきとーに名付けたら「もやし」になってた。url はたぶんホームページの url を…

virtual-file-pscp

なんか思ってたのと違った。けどせっかく調べたので書いておく。とりあえず xyzzy の ext-lisp は netinstaller で install したら、該当するファイルを開いて冒頭のコメントを読む。大抵そこに使い方とか書いてある。virtual-file-pscp は *._pscp とゆーフ…

values への setf 対応させる patch

昨日の values への setf で書いたコード(lisp/setf.l への patch)貼るの忘れてたので、http://xyzzy.s53.xrea.com/wiki/index.php?patch%2F30 に貼っておいた。(たしか)Cygwin の diff -u で作ったんだけど、なんか改行が不可思議なことになってたので …

values への setf

defsetf とか define-setf-method とかの使い方はよく知らんのだけど、まぁ何とかなるかなーと思ってた。世の中そんなに甘くなかった。 define-setf-method (setf (access-fn args) new-value) とゆー風に呼び出される access-fn への setf を定義する defin…

install ruby, rubygems and ditz

## ruby をインストール $ apt-cyg install ruby ## rubygems をインストール $ mkdir rubygems $ cd rubygems $ wget http://rubyforge.org/frs/download.php/57643/rubygems-1.3.4.tgz $ tar zxvf rubygems-1.3.4.tgz $ cd rubygems-1.3.4 $ head README =…

GitHub の syntax-highlight

xyzzy-lisp のファイル(*.l)が色つかない。*.lisp にしてみたら付いた(common-lisp 色)んで、拡張子見て判断してるっぽい。うーん。"filename.l を common-lisp として扱え" なんてリクエストしていいもんだろうか。とゆーか language:xyzzy-lisp があれ…

GitHub に置いときました

http://github.com/bowbow99/ xl-expectations.l symbol-macrolet.l どっちも「リリースしました!」とか言える状態ではないんで、えーと、その、お察しください。GitHub のリポジトリは、管理画面からリポジトリ名の変更とかリポジトリの削除をできそうなん…

GitHub

Git

準備 参考 http://rewish.org/tools/cygwin_github ## インストール $ apt-cyg install git ## git の設定 $ git config --global user.name "bowbow99" $ git config --global user.email bowbow99@gmail.com $ git config --global ui.color auto ## githu…

Cygwin-1.7 入れてみた

git 使いたいがために何度となく試しては使わなくなった cygwin に再挑戦。と思ったら 1.7 とゆー新しいのが出たというので。 apt-cyg 昔 cyg-apt という python のを試してみたら動いたんだけど、今回はどうにも動かせなかったんでこっちを試してみた。 Goo…