2009-01-01から1年間の記事一覧
昨日の values への setf で書いたコード(lisp/setf.l への patch)貼るの忘れてたので、http://xyzzy.s53.xrea.com/wiki/index.php?patch%2F30 に貼っておいた。(たしか)Cygwin の diff -u で作ったんだけど、なんか改行が不可思議なことになってたので …
defsetf とか define-setf-method とかの使い方はよく知らんのだけど、まぁ何とかなるかなーと思ってた。世の中そんなに甘くなかった。 define-setf-method (setf (access-fn args) new-value) とゆー風に呼び出される access-fn への setf を定義する defin…
## 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 =…
xyzzy-lisp のファイル(*.l)が色つかない。*.lisp にしてみたら付いた(common-lisp 色)んで、拡張子見て判断してるっぽい。うーん。"filename.l を common-lisp として扱え" なんてリクエストしていいもんだろうか。とゆーか language:xyzzy-lisp があれ…
http://github.com/bowbow99/ xl-expectations.l symbol-macrolet.l どっちも「リリースしました!」とか言える状態ではないんで、えーと、その、お察しください。GitHub のリポジトリは、管理画面からリポジトリ名の変更とかリポジトリの削除をできそうなん…
準備 参考 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…
git 使いたいがために何度となく試しては使わなくなった cygwin に再挑戦。と思ったら 1.7 とゆー新しいのが出たというので。 apt-cyg 昔 cyg-apt という python のを試してみたら動いたんだけど、今回はどうにも動かせなかったんでこっちを試してみた。 Goo…
こないだ 2ch の mayu スレで 月は空き地でいっぱい | 繭tips 第3回 というのを知って試してみたけど、完全に望んだ動作はさせられなかったという話。やりたかったのは: Space をふつーに押すと Space 入力 Space を押したまま他のキーを押すと、S- Space を…
(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 か GitHub かーと迷ったけど、以下の理由でとりあえず CodeRepos に。 Subversion は一応使ったことあるんで取っつきやすいだろう 「放流」という言葉がえらく気に入った YappoLogs: CodeRepos - 個人レポジトリを共有しよう!計画 けど git は便…
個人的にはタイプ数が多くなっても「条件」と「処理」が区別できるから 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 だぉ!!…
(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 の定義は (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になる …
(listp nil) => t (consp nil) => nil ふむ・・・。nil は cons ではない、と。 (atom nil) => t そして nil は atom だ、と。なんか釈然としないがそうなんだから仕方がない。
BDD 云々について調べてたら Google グループ を見つけて、んでまぁチラチラと過去ログ読んでたら GWT という(考え方の)フレームワークがあった。 Given: ○○な(状態|状況)で When: ××をしたら Then: △△(が起きる|になる) ちょっと Given というのがわかり…
リストの破壊的操作をする - 象徴ヶ淵 経由http://cadr.g.hatena.ne.jp/g000001/20090521/1242909362 の問題 nalist-to-plist (nalist-to-plist '((foo . 1) (bar . 2) (baz . 3))) => (foo 1 bar 2 baz 3) らしい。(key1 value1 key2 value2 ...) という li…
ちゃんとした説明を読んだことが無いので間違ってるかもしれない。この記法(?)のちゃんとした名前を、そんなものあるのかどうかも知らないけど、知らないのでどう調べていいのかわからない。"common-lisp #n#" とかでググっても # が無視されちゃうみたい…
バイト先にコンピュータ関係の学科の大学生がいて、何を間違ったか lisp の勉強をし始めたらしく(プライベートで)、バイト中に lisp の質問をしてくる。 「2番目の要素」? なにやら lisp の本を読んでるらしくて、例題にあった「与えられたリストの2番目…
データが扱える人を探せ! - 象徴ヶ淵 経由 JAVA5.0でGO!! | プログラミングに自信があるやつこい!!こないだ トランプを配 ったらトラックバックをもらったのでお礼?お返し?に、という建前で遊んでみた。こーゆーの楽しい。ついでに言うと他の人の見…
(let ((x 'foo)) (symbol-value 'x)) => 変数が定義されていません: x (let ((x 'foo)) (boundp 'x)) => nil なんで・・・ Notes: The function bound determines only whether a symbol has a value in the global environment; any lexical bindings are i…
selection があれば selection の region があれば region の C-u されてれば、現在行の前後の行の C-u されてればバッファ全体の それ以外なら現在行の start と end を受け取る interactive なんてのがあれば便利かなぁ、という気がしたので作ってみる。 …
interactive の引数として list を渡せばおk list を返す方法は、単にそこに書いてある式が評価される(っぽい)のでどーにでもなる interactive にした関数の各引数は、その list の各要素に束縛される 順番は、えーと、respectively。(ひとつめの引数は…
昔書く書くと言ってた「テスト用のなにか」。名前が無いと不便なのでとりあえず xl-behave としたんだけど、subversion の repository とか trac とか考えると名前を変更するのってけっこーめんどい予感。書く書くと言って全然書いてないのは、どういうもの…