xyzzy

正規表現リテラル

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

structure の conc-name

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

Given-When-Then

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…

#n# とか #n=ナントカ とか

ちゃんとした説明を読んだことが無いので間違ってるかもしれない。この記法(?)のちゃんとした名前を、そんなものあるのかどうかも知らないけど、知らないのでどう調べていいのかわからない。"common-lisp #n#" とかでググっても # が無視されちゃうみたい…

データっていうか高階関数なら使えます

データが扱える人を探せ! - 象徴ヶ淵 経由 JAVA5.0でGO!! | プログラミングに自信があるやつこい!!こないだ トランプを配 ったらトラックバックをもらったのでお礼?お返し?に、という建前で遊んでみた。こーゆーの楽しい。ついでに言うと他の人の見…

symbol-value と boundp はlexical な binding を無視する

(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…

interactive で任意の動作をさせる list について調べた

selection があれば selection の region があれば region の C-u されてれば、現在行の前後の行の C-u されてればバッファ全体の それ以外なら現在行の start と end を受け取る interactive なんてのがあれば便利かなぁ、という気がしたので作ってみる。 …

interactive で任意の動作をさせる list のまとめ

interactive の引数として list を渡せばおk list を返す方法は、単にそこに書いてある式が評価される(っぽい)のでどーにでもなる interactive にした関数の各引数は、その list の各要素に束縛される 順番は、えーと、respectively。(ひとつめの引数は…

落書き、もしくは妄想

昔書く書くと言ってた「テスト用のなにか」。名前が無いと不便なのでとりあえず xl-behave としたんだけど、subversion の repository とか trac とか考えると名前を変更するのってけっこーめんどい予感。書く書くと言って全然書いてないのは、どういうもの…

keyconf.l で興味深い現象が起きていた

keyconf.l - 書き捨て御免 なんだけど get-command-table (name) name に関連づけられた hash-table を *command-tables-table* から取得(まだ無かったら作る)して返す、という関数。なんだけどせっかく作った hash-table を *command-tables-table* に保…

niup

今まで存在すら知らなかった。自分で使うかどうかは置いといて紹介だけ。 なにこれ? モノとしては xyzzy 用の netinstaller 対応拡張 lisp、ということになるのかな。自分でファイル置き場用意してー packages.l 用意してー、とかしなくても xyzzy 用の net…

my-kill-line

emacs の kill-line には元々「行頭〜ポイントを kill」という動作があるそうだ。 Emacsでカーソル位置から行頭まで削除する方法 - はてブロ@ama_ch xyzzy でもあるんかなと調べたら、同様に C-u 0 C-k でいけるっぽい。C-u 0 も M-0 もめんどいのに C-u C-k…

シンボルを buffer-local にする4つの方法

なんかホッテントリメーカーくせぇ。 make-local-variable: 'symbol 現在のバッファでのみ buffer-local になる。setq とかしなくても local-variable-p が non-nil になる。 make-variable-buffer-local: 'symbol 全てのバッファで buffer-local になる。se…

*scratch* を kill-buffer したら

バッファの中身をクリアしてくれたら便利っぽくね?と思って *query-kill-buffer-hook* にそんなことする関数突っ込もうとしてたら、ふと *kill-buffer-kills-scratch* が nil だったり non-nil だったりするときに *query-kill-buffer-hook* は蹴ってくれる…

インタラクティブ指定子

refenerce を見ると *interactive-specifier-alist* に追加すればとか keymap.l 参照とか書いてあるので見てみたり調べてみたりしたのでメモ。えーと、*interactive-specifier-alist* に '(キー . 関数のシンボル) を追加すれば キー の文字が指定子として使…

一気に undo したい

入力 今入力した(する)文字がさっき入力した文字と同種(アルファベット, 数字, 空白, 記号, その他 のどれか)か、空白後のアルファベットなら undo の区切りを消す=今のとさっきのをまとめ1発で undo できるようになる、というもの。 (defun char-type …

flet と labels の違い

どこかでどっちかは再帰ができないとか聞いた気がしたので確かめてみた。 (defun hoge (&optional arg) 'defun) => hoge (flet ((hoge (&optional arg) (if arg (hoge) 'flet))) (values (hoge t) (hoge nil))) => defun => flet (labels ((hoge (&optional …

))) ;|#

なんか気分が乗らないので小ネタを披露。あるファイルに lisp を書いてて、書きかけの関数があるけど今すぐにこのファイルを読み込みたい!けどこの書きかけの関数のせいで「予期しないEOFを検出しました」とか怒られる!ってときは、その書きかけの関数をコ…

regexp-keyword-list

指定した正規表現にマッチする文字列に色をつける機能。reference によればこんな風に使う。 ;; regexp-keyword-list に使う list を用意しておいて (defvar *hoge-regexp-keyword-list* (compile-regexp-keyword-list '(("regexp" CASE-FOLD COLOR *CONTEXT…

関数内のマクロが展開されるのはどの時点

なんか日本語不自由なタイトルだ。 前回 lisp-unit.lisp のこと書いた中で、macro を含む関数を作るとその macro は展開されたカタチで保存される、みたいなことを書いたのだけど、*scratch* で色々やってたらそーでもない場合もあるみたいだったので調べて…

lisp-unit.lisp

http://www.cs.northwestern.edu/academics/courses/325/readings/lisp-unit.html xyzzy-lisp 用の test tool が欲しいな、作ってみようかな。つーか common-lisp 用のならあるんじゃね?と探してみて見つけたのが lisp-unit.lisp ざっと見た感じ xyzzy-lisp…

文字列から日付に

646 >> Name: デフォルトの名無しさん [sage] posted at: 2008/08/16(土) 17:28:38 以下はC#で書いた、"2003/4"みたいな文字列からDateTimeに変換する関数ですが。 これを関数型言語らしく書くと、どのように書けますか? 従来の思考が抜けなくて、どうやっ…

~/.netinst/config.l

$xyzzy/site-init 以下とか $xyzzy/lisp 以下とかがぐちゃぐちゃになってきたんできれーにしようと xyzzy ダウンロードして設定し直そうとしてたのだけど、とりあえず NetInstaller 入れて XyzzyWiki の http://xyzzy.s53.xrea.com/wiki/index.php?tips%2F%A…

enparam.l

ファイルの頭に書いてある # -*- spam: hoge -*-みたいなのをバッファローカルな変数に入れてくれるものらしい、というので使ってみた。サンプルをコピペして開くと「不正なデータ型です: #: symbol」とか怒られる。そのまま再起動するとバッファバーとかが…

スコープ

前にも書いているけど、スペシャル変数は「ダイナミックスコープ」だから「あらゆる環境を超えて一意の値」となっているだけの話。 グローバル環境に登録されたレキシカルスコープの変数ときちんと区別していないから、混乱するってだけの話ではないのかな。…

コメント内に書き散らかすメモとか

いろんなことを wiki のような hatena のような書式で書いてるんだけど、全部コメント色で見辛いとか思ってたら regexp-keyword-list なんてもんがあった。正規表現で指定して色つけれた。とりあえず 見出し: * で始まる行 箇条書き: -, +, \d.で始まる行 定…

hateda-mode のてすと

blah, blah, blah,,, 書けたっぽい。はてダラ(というか perl)を使うのが面倒で放置してた hateda-mode を入れてみた。思ったよりずっと簡単に使えた。もっと早くやっときゃ良かった。んで、">|javascript|" から "||javascript-mode にとか思ってやってみ…

インデントの幅を変更する何やら

むかし最速の人がネストが深くなったりしたらタブの幅を変更して見やすくとか言ってたのを思い出して、xyzzy ならスペースでもできんじゃねーかとほとんど勢いだけで作った。 (defun js-change-indent-level (lv) (interactive "*nLevel: ") (save-excursion…

変数に代入されてるもの

var symbol = "you gotta keep 'em separated."; //symbol is <String> /* 中略 */ symbol = { 'name': "shinya nakano", 'dateOfBirth': new Date(1977, 10, 10), 'height': 167, 'weight': 58 } //symbol is <Object> /* 中略 */ function func(){ /* do something */ symb</object></string>…