Created
September 23, 2012 06:03
-
-
Save takeisa/3769042 to your computer and use it in GitHub Desktop.
Common Lisp format memo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* common-lisp: format: | |
~a aesthetic | |
~s readで読める形式 | |
~:a nil → () で出力 | |
~% 改行 | |
~& 先頭でないときに改行 | |
~5% 5個改行 | |
~~ ~を出力 | |
~5~ 5個出力 | |
~c 文字 | |
~:c 印字されない文字を名前で出力 | |
ユーザに文字についてのメッセージを出力するときに使える。 | |
~@c Lisp文字リテラルのシンタックスで出力 | |
~:@c 文字の入力方法(処理系依存) | |
~d ~x ~o ~b ~r 整数 | |
~d: 10進 | |
~:d ,区切り | |
~@d 符号付き | |
~:@d 両方 | |
前置パラメタ | |
1: 出力幅 | |
2: パディングに使う文字 | |
~10,'0d 10桁0埋め | |
3: :指定時の区切り文字 | |
4: :指定時の区切り桁数 | |
~x, ~o, ~b 16進、8進、2進 | |
~r 任意の基数 | |
前置パラメタに 基数を設定 | |
以降のパラメタは ~d と同じ | |
"~3,15,'0r" 基数3,15桁,0埋め | |
~r 何も付けないと 英語のテキスト | |
: 序数 | |
@ ローマ数字 | |
:@ 古いローマ数字 | |
~f ~e ~g ~$ 浮動小数点数 | |
~f 数が小さい or 大きい場合に指数表記 | |
~e 常に指数表記 | |
前置パラメタ | |
1: 何だろ? | |
2: 小数点以下の桁数 | |
~$ ドル(通貨用) | |
デフォルト小数点以下2桁 | |
前置パラメタ | |
1: 小数点以下の桁数 | |
2: 整数部桁数 → でも0埋め | |
~f,~e,~$ | |
@で符号が付く | |
~p 複数形の表記制御 | |
"~r file~:p" num | |
num = 1 → one file | |
num = 10 → ten files | |
num = 0 → zero files | |
: を付けると引数を消費しない | |
@ y または ies を出力する | |
family families | |
~( ~) | |
小文字で出力する | |
@ 文の最初を大文字 | |
: 全ての単語の最初を大文字 | |
:@ 全て大文字 | |
~[ ~] | |
インデックス(0から)に対応する文字列を出力 | |
~[zero~;one~;two~;~:;default~] | |
~:; デフォルト | |
デフォルト指定がなく、インデックスに対応する文字列がない場合は何も出力しない | |
~#[ ~] 引数の個数に応じて出力を変更できる | |
~:[ ~] nilの場合は最初の文字列、それ以外は二つめの文字列 | |
二つの節だけ含められる。 | |
~@[ ~] 引数がnilではなかったら、引数を消費できるようの戻してから、節を処理する。 | |
→ nilだったら表示しない処理ができる | |
"~@[x=~a~] ~@[y=~a~]" 10 20 → x=10 y=20 | |
~{ ~} 反復 | |
~^ リストの最後だったら、以降の制御文字列を処理しない | |
"~{~a~^, }" list CSVの出力 | |
~@{ ~} 残りのフォーマット引数をリストとして扱う | |
~{ ~}の中では # は処理されずに残っている要素の個数 | |
~{ ~:} リストが空でも最低一回は繰り返しが実行される | |
~:{ ~} リストのリストを処理 | |
前置パラメタ 繰り返し回数の上限 | |
~* 引数を飛ばす | |
~:* 引数を戻す | |
"~r ~:*(~d)" 1 → one (1) | |
前置パラメタ 前後に移動する数 | |
~@* 前置パラメタ 絶対的な位置に飛ぶ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment