Prolog 写経記 その 73 write_list_separated/3
(ほぼ) 毎日淡々と Prolog を写経します.元ネタはこちら.
- 作者: ボグダンフィリピッチ,中島誠,伊藤哲郎
- 出版社/メーカー: 海文堂出版
- 発売日: 1990/08
- メディア: 単行本
- 購入: 4人 クリック: 33回
- この商品を含むブログ (68件) を見る
write_list_separated/3
を写経します.解説
write_list_separated(List, Del, N)
はList
の要素を現在の出力ストリームに書き出す.ココの要素はDel
によって仕切られて出力され,N
個のブランクで字下げされた新しい行に出力される.
ふむ.
モード
write_list_separated(+, +, +).
ふむ.
定義
では,こいつの定義を写経しませう.
write_list_separated([], _, _) :- !. write_list_separated([X], _, N) :- !, nl, tab(N), write(X). write_list_separated([X | List], Del, N) :- nl, tab(N), write(X), write(Del), write_list_separated(List, Del, N).
最初の節は停止条件.
次の節はリストの最後 (唯一) の要素を出力するもので,改行して N
個の字下げをして要素を出力してます.
最後の節はリストの先頭の要素を出力するもので,改行して N
個の字下げをして要素を出力して,残りの要素を再帰的に出力します.
またまたつまんね.
例
では使用例を写経しませう.
3 ?- write_list_separated([red, green, blue], ' ', 5). red green blue Yes 4 ?- write('['),
write_list_separated( |
[key(3, a), key(7, g), key(2, n)], ',', 3), |
nl, write(']'). |
またまたつまんね.