Prolog 写経記 その 57 max/3

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

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

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

続けて max/3 を写経します.

解説

max(Numlist, Max) は数のリスト Numlist 中の最大値を返すか,あるいは MaxNumlist 中で最大の数かどうかを調べる.

ふむ.

モード

max(+, +, ?).

ふむふむ.

定義

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

max(X, Y, X) :-
	X >= Y, !.
max(X, Y, Y) :-
	Y > X, !.

ふむふむふむ.
そのまんま,ですね.

注記

max/3 は比較対象が数でないとき失敗する.max/3 をアトムに適用するには,アルファベット比較演算子 age,agt (3 章参照) をそれぞれ >=,> の代わりに用いるとよい.

ふむふむふむふむ.

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

10 ?- max(100, 77, M).

M = 100 

Yes
11 ?- max(-13.9, 13.9, -13.9).

No

ふむふむふむふむふむ.
特にどうという事もなく.