Prolog 写経記 その 71 write_list_delimited/2
(ほぼ) 毎日淡々と Prolog を写経します.元ネタはこちら.
- 作者: ボグダンフィリピッチ,中島誠,伊藤哲郎
- 出版社/メーカー: 海文堂出版
- 発売日: 1990/08
- メディア: 単行本
- 購入: 4人 クリック: 33回
- この商品を含むブログ (68件) を見る
write_list_delimited/2
を写経します.解説
write_list_delimited(List, Del)
はList
の要素をDel
で仕切って,現在の出力ストリームに出力する.
ふむ.
モード
write_list_delimited(+, +).
ふむ.
定義
では,こいつの定義を写経しませう.
write_list_delimited([], _). write_list_delimited([X], _) :- !, write(X). write_list_delimited([X | List], Del) :- write(X), write(Del), write_list_delimited(List, Del).
昨日のより全然楽♪
最初の節は停止条件,次の節はリストの要素が一つだけならそれを単独で出力.
最後の節はリストの要素が複数ある場合で,最初の要素を出力した後にデリミタを出力して,残りの要素を再帰的に出力,と.
例
では使用例を写経しませう.
2 ?- write_list_delimited([1, 2, 3, 4, 5], '+'). 1+2+3+4+5 Yes 3 ?- write_list_delimited(['May', 'June', 'July'], ' '). May June July Yes
楽勝♪