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

クリック対応 SandS を諦めた

こないだ 2ch の mayu スレで 月は空き地でいっぱい | 繭tips 第3回 というのを知って試してみたけど、完全に望んだ動作はさせられなかったという話。やりたかったのは: Space をふつーに押すと Space 入力 Space を押したまま他のキーを押すと、S- Space を…

なんちゃって symbol-macrolet

(defmacro symbol-macrolet (defs &body body) (labels ((rplatom (old new forms) (cond ((null forms) nil) ((atom forms) (if (eq forms old) new forms)) (t (cons (rplatom old new (car forms)) (rplatom old new (cdr forms))))))) `(progn ,@(dolist…

CodeRepos に申し込んだ

CodeRepos か GitHub かーと迷ったけど、以下の理由でとりあえず CodeRepos に。 Subversion は一応使ったことあるんで取っつきやすいだろう 「放流」という言葉がえらく気に入った YappoLogs: CodeRepos - 個人レポジトリを共有しよう!計画 けど git は便…

when と and - higepon blog

個人的にはタイプ数が多くなっても「条件」と「処理」が区別できるから when が好き。なので条件が複数の場合でも when 使う。 (when (and <condition-1> <condition-2>) <do whatever>)</do></condition-2></condition-1>

そろそろ公開する準備しよう

簡単なとこ(utility とか)のみだけど自分の spec 書いて自分で verify できるようになった。 (specify values-of (expect (values-of '(a b c d) #'car #'cadr #'cddr) (returns 'a 'b '(c d))) (expect (values-of 'a #'identity) (returns 'a)) (expect …

なにかあったら出力

(format t "~:[~;~:*~S~]" <なにか>) #1: nil/non-nil で分岐 "~:[こっち~;そっち~]" という format 文字列を置いとくと、そこに与えられる引数が nil なら "こっち" が、non-nil なら "そっち" が出力される。 (format t "~:[nil だぉ・・・~;non-nil だぉ!!…

xl-expectations.l minimal なの

(expect (+ 1 2 3) (returns 6)) => t (expect (concat "foo" "bar") (returns "foobar")) => t (expect (add 1 2 3) (returns 6)) (add 1 2 3) Expected: return 6 Actually: signaled undefined-function. => nil (expect (+ 'foo 'bar) (signals type-err…

パッケージと名前のプレフィックス

xyzzy の拡張 lisp では「-」みたいな名前をつける習慣がある。たとえば complete+-select-prev-item みたいな。たぶん package system の無い emacs での習慣をそのまま持ってきたんだと思う。これは拡張ごとに package 作っちゃって「:以下、"extension" …

最小化しよう

書いてるうちに「あんなこともできそう」とか「こんなんできたら便利くさい」とか思いついちゃって全然終わらないので、最低限だけのもの作ってしまおう、ということにした。 (expect (+ 1 2 3) (returns 6)) => t ;なにか non-nil な値 (expect (add 1 2 3)…

正規表現リテラル

質問箱/262 - XyzzyWiki 正規表現中のクォートの取り扱い先に言うとたぶん無理。 # $str =~ /"(.*?)\./s; この行はコメントになって、後の行が全部文字列色になっちゃうってことはない。それは「"」が出現したのがコメントの中なので、その「"」は文字列の開…

structure の conc-name

structure の定義は (get ' 'si:structure-definition) で得られるのはわかったけど、そっから conc-name を見つける方法がわからなくて struct.l を3時間くらい読んでみた。結果、structure の定義を作ってる si::*make-structure-definition なる関数に co…

最近わかった気になってきたこと

書き始めてしまえばけっこーなんとかなる ただし、そのコードは汚い それでも書いてるうちにイメージがはっきりしてくる 結論: いいから黙ってコード書いてろ

コンスセルを展開させてみた

そもそも、これを読んで「へぇーへぇーへぇー」とか言ってた。 alist 例.((foo . 1) (bar .2) ...)とplist 例.(foo 1 bar 2 ....)の使うコンスセル数は同じことが知られています。 10分でコーディング x 2 〜リストの破壊的操作篇〜 - わだばLisperになる …