* Menu
[[About:self:AboutPage.txt]] | [[Profile:http://iddy.jp/profile/southly/]] | [[まとめ:self:1163859357.txt]] | [[オリジナル:http://ninjinix.x0.com/rn/]] | [[xyzzy:http://raido.sakura.ne.jp/southly/xyzzy/site-lisp/]] | [[あんてな:http://i-know.jp/southly/listall]] | [[■:http://raido.sakura.ne.jp/southly/lisp/ni/view.lisp]] | [[buzz:http://www.google.com/profiles/southly#buzz]]
- Scrapbook : おびなたのはてな日記 - C++テンプレートでLisp
- xyzzy lisp : format ~^
- xyzzy lisp : format ~&
- xyzzy lisp : format ~{
- emacsの文字表現
- 「入門 Common Lisp - 関数型4つの特徴とλ計算」の著者のページを見た
- 2006-10-02
- Scrapbook : xyzzy本体移植のための調査 - FSWikiLite
- 「入門Common Lisp〜関数型4つの特徴とλ計算」感想
- xyzzy lisp : format ~(
- xyzzy lisp : format ~?
- 2006-09-25
- Scrapbook : 孤島からビンを流す会
- xyzzy lisp : Buffer selection
- Scrapbook : MYCOM BOOKS - 入門Common Lisp〜関数型4つの特徴とλ計算
page 18 - << : 0 : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10 : 11 : 12 : 13 : 14 : 15 : 16 : 17 : 18 : 19 : 20 : 21 : 22 : 23 : 24 : 25 : 26 : 27 : 28 : 29 : 30 : 31 : 32 : 33 : 34 : 35 : 36 : 37 : 38 : >>
* Scrapbook : おびなたのはてな日記 - C++テンプレートでLisp
http://d.hatena.ne.jp/earth2001y/20061001/p2
* xyzzy lisp : format ~^
- 処理を途中で切り上げる
- パラメータは最大3つ
- パラメータが無い場合
- "^" 引数がなくなったら終了。繰り返しの中ならば繰り返す要素がなくなったら終了。
- ":^" "~:{~}"か"~:@{~}"の内部でのみ使用可。繰り返しの最後の要素のときに終了。
- パラメータが1つの場合 パラメータに0が指定されたら終了
- パラメータが2つの場合 2つのパラメータが等しくなったら終了
- パラメータが3つの場合 1つ目のパラメータ≦2つ目のパラメータ≦3つ目のパラメータとなったとき終了
(format nil "~D~^~D~^~D~^~D" 1) "1" (format nil "~D~^~D~^~D~^~D" 1 2 3) "123" (format nil "~{~A~^ + ~}" '(1 2 3 4)) "1 + 2 + 3 + 4" (format nil "~:{~A~^X^~D+~}" '((a 3) (b 2) (c 1) (d 0))) "aX^3+bX^2+cX^1+dX^0+" (format nil "~:{~A~:^X^~D+~}" '((a 3) (b 2) (c 1) (d 0))) "aX^3+bX^2+cX^1+d" (format nil "~A~V^~A~V^~A~V^~A" 'a 2 'b 1 'c 0 'd) "abc" (format nil "~A~V,V^~A~V,V^~A~V,V^~A" 'a 1 2 'b 2 2 'c 2 3 'd) "ab" (format nil "~A~V,V,V^~A~V,V,V^~A~V,V,V^~A" 'a 1 1 2 'b 2 1 2 'c 2 3 4 'd) "a"
* xyzzy lisp : format ~&
- 現在の桁が0になるように改行を出力(すでに0ならなにもしない)
- パラメータは最大1つ
- Nが与えられたら通常の動作1回、その後 (N-1) 個の改行を出力
(format nil "~&") ; 何もしない "" (format nil "xyzzy~&") ; 改行を出力 "xyzzy " (format nil "~2&") ; 何もしない + 1つ改行を出力 " " (format nil "xyzzy~3&") ; 改行を出力 + 2つ改行を出力 "xyzzy "
* xyzzy lisp : format ~{
- 繰り返し出力
- ~} で範囲を終了
- ~:} で範囲の終了を示したときは必ず1回は繰り返しを実行
- "{" リストを引数にとる
- ":{" リストを引数にとり、かつ繰り返し1回に1つのリストを消費
- "@{" 元のformatの引数をそのまま消費
- ":@{" 元のformatの引数をそのまま消費、かつ繰り返し1回に1つのリストを消費
- パラメータは1つ
- 繰り返し回数の上限
(format nil "~{~A ~}" '(a b c d)) "a b c d " (format nil "~:{~A ~}" '((a) (b) (c) (d))) "a b c d " (format nil "~@{~A ~}" 'a 'b 'c 'd) "a b c d " (format nil "~:@{~A ~}" '(a) '(b) '(c) '(d)) "a b c d " (format nil "~2{~A ~}" '(a b c d)) "a b " (format nil "~{~A ~}" nil) "" (format nil "~{~A ~:}" '(a)) ; nilが引数だとエラー "a " ; "~^"と一緒に使うのが便利 (format nil "~{~A~^, ~}~%" '(one two three four)) ; 最後に", "はいらない "one, two, three, four "
* emacsの文字表現
http://snmsts.orz.hm/~sana/wiki/index.php?%C6%FC%B5%AD%A4%C3%A4%DD%A4%AF%2F2006-10-03#k3406f46
すげー同感ッス。
bs.elの移植のとき
「? 」となっているところを見て何故に「?」が単独で?
としばらく考え込みました。
reader周りはまだ勉強していないのでスルーで。
すげー同感ッス。
bs.elの移植のとき
「? 」となっているところを見て何故に「?」が単独で?
としばらく考え込みました。
reader周りはまだ勉強していないのでスルーで。
* 「入門 Common Lisp - 関数型4つの特徴とλ計算」の著者のページを見た
無茶苦茶な制約があったもんだ。
「Lisp の入門書ではない」「xyzzy と関連させる」「xyzzy のマクロを作る本ではない」の3つは同時には成立しないでしょう。
「Lisp の入門書ではない」「xyzzy と関連させる」だったらxyzzyのマクロの話しかないし、
「xyzzy と関連させる」「xyzzy のマクロを作る本ではない」だったらLispの基礎の基礎をやるしかないし、
「Lisp の入門書ではない」「xyzzy のマクロを作る本ではない」だったらxyzzyが絡む余地は無いよ。
なんで無理やりxyzzyを絡めようとしたのか謎。
Common Lispは関数型言語としては泥臭すぎて関数型言語の勉強には向かないと思います。
Lisp系ならSchemeを選ぶべきかと。
末尾再帰の最適化の保証が無いから再帰よりもループを使うでしょうし、
値を返さない関数もあるし、
setfが便利すぎて代入文も普通に使うんじゃないでしょうか。
* 2006-10-02
- 吉野家で牛丼食った
- 昔と比べて……よく分からん