Prolog 写経記 その 68 nl/1

(ほぼ) 毎日淡々と Prolog を写経します.元ネタはこちら.

Prologユーティリティライブラリ

Prologユーティリティライブラリ

今日からは「7章 出力ユーティリティ」へ突入.
まずは nl/1 を写経します.

解説

nl(N) は新しい N 行を現在の出力ストリームに出力する (N 行改行する).

ふむ.

モード

nl(+).

ふむ.

定義

では,こいつの定義を写経しませう.

nl(0) :- !.
nl(N) :-
	integer(N),
	N > 0,
	nl,
	More is N - 1, !,
	nl(More).

ふむ.
どうということもない定義.

注記

引数は正の整数でなければならない.それ以外では nl/1 は失敗する.

ふむ.
それよりもですね...
SWI-Prolog には nl/1 がすでにあるのですよ.
し・か・も
引数は出力ストリーム.全然別物です.
そんなわけで (どんなわけで?),写経本の nl/1nl2/1 ということにします.
new line n (times) ということで nln/1 の方がいいのかなぁなんて思ったけど,どうでもいいや.

では使用例を写経しませう.

5 ?- write('Execution finished'), nl2(3), write('Result:').
Execution finished


Result:

Yes

ふむ.