前説
- LOOP利用例をFORMAT利用例で焼き直しても。。。嫌われものどうしで比較してどうする。
- 試す。
CL-USER> (defun hoge (list)
(loop for cons on list
do (format t "~a" (car cons))
when (cdr cons) do (format t ", ")))
HOGE
CL-USER> (hoge '(1 2 3 4))
1, 2, 3, 4
NIL
CL-USER> (defun piyo (list)
(format t "~{~a~^,~}" list))
PIYO
CL-USER> (piyo '(1 2 3 4))
1,2,3,4
NIL
CL-USER> (defun puyo (list)
(do ((rest list (cdr rest)))
((null rest) t)
(if (cdr rest)
(format t "~a, " (car rest))
(format t "~a" (car rest)))))
PUYO
CL-USER> (puyo '(1 2 3 4))
1, 2, 3, 4
T
CL-USER>
まあ、出力したいだけなんだから、それをFORMATにまとめちゃうというのは私的にはありです。LOOPは、まだ気持ち悪いのですが。
The FORMAT Function
特になし。
FORMAT Directives
この本、語り部口調が売りだと思うのですが、この際箇条書きで書いてもらった方がわかりやすいと思うところもあるんだよね。。。
メモをとりながら。
- 全てのdirectivesは次の形となる。
~(prefix parameters)(a character)- (a character)がdirectivesの本体というか名前。
- (prefix parameters)は無いこともある。
- (prefix parameters)は複数のパラメータの場合もある。その場合は、それらをカンマで区切る。
- (prefix parameters)のパラメータは、具体的な数でもよいし、外から渡してもよいし、#のようにdirectiveの形から算出されるものもあるし、:や@のように出力形式を指定するものもある。
- :と@の場合は、:@とすると両方の出力形式が採用される。形式としてバッティングする場合は、新しい出力形式が定義されている場合もあるし、何が出力されるかわからん場合もある。
- (a character)がdirectivesの本体というか名前。
Basic Formatting
Character and Integer Directives
English-Language Directives
Conditional Formatting
特になし。
Iteration
- おお、~^は脱出なんだ。
- "~{~#[~;~a~;~a and ~a~:;~@{~a~#[~;, and ~:;, ~]~}~]~}"。ウォーー
Hop, Skip, Jump
And More ...
特になし。
0 件のコメント:
コメントを投稿