* 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]]
* 2008-03-12 :
- scheme
- 再帰の件については SANO さんの書いている形に解釈されれば問題ないと思いますが、Scheme の仕様上は以下のようになるということなのだと思います。(Schemeはよく知らないので自信はありませんが)
(defun foo (i l)
(if (>= i 5)
l
(foo (1+ i) (cons (lambda () i) l))))
(mapcar #'funcall (foo 0 nil))
=>(4 3 2 1 0)
- 再帰ということは関数呼び出しなわけで、レキシカルスコープの境が生まれる、この点が iteration と決定的に異なるという話だと理解しました。
- というか、黒田さんの話が聞けると知っていたら絶対行ったのに…… 残念だなぁ。
* Common Lisp : xmls & s-xml と日本語
xmls で日本語を出力するには、write-escaped を修正する。
例えば以下のような感じ。
s-xml の場合は print-string-xml に手を入れればいいと思う。
が、どの範囲をそのまま出力するようにするかが悩ましい。
UTF-8で出力することが前提ならなら ASCII 以上は全部でも良いとは思うけど、文字コード・文字集合辺りはよく分からないなあ。(上のはASCII以上全部になっているし)
例えば以下のような感じ。
(in-package :xmls)
(defun write-escaped (string stream)
"Writes string to stream with all character entities escaped."
(coerce string 'simple-base-string)
(when (eq stream t) (setf stream *standard-output*))
(loop for char across string
for esc = (if (< (char-code char) (length *char-escapes*))
(svref *char-escapes* (char-code char))
(string char))
do (write-sequence esc stream)))
ただ、xmls で出力した xml はあんまり見慣れない書き方になるみたいなので使わない気がする。s-xml の場合は print-string-xml に手を入れればいいと思う。
が、どの範囲をそのまま出力するようにするかが悩ましい。
UTF-8で出力することが前提ならなら ASCII 以上は全部でも良いとは思うけど、文字コード・文字集合辺りはよく分からないなあ。(上のはASCII以上全部になっているし)
* 2008-03-09 :
- elisp を書く気はさらさらないので (requre 'cl) には拘らないです。
- 具体例として、現在の .emacs はこんな感じです。
- session.el
- tails-history.el
- キーバインドを覚えていないのですが、M-x の履歴で何とかしています。
