2010年11月7日日曜日

Prologの技芸 6.1節の練習問題

(1)
daughter(X,haran)?
father(haran,X) {X=lot}
male(lot)
true
father(haran,X) {X=milcah}
male(milcah)
fail
father(haran,X) {X=yiscah}
male(yiscah)
fail

(2)
sort([3,1,2],Xs)?
sort([1,2],Zs)
sort([2],Zs1)
sort([],Zs2) {Zs2=[]}
true
isnert(2,[],Zs1) {Zs1=[2]}
true
insert(1,[2],Zs) {Zs=[2,Ys]}
1>2
fail
insert(1,[2],Zs) {Zs=[1,2]}
1 =< 2
true
insert(3,[1,2],Xs) {Xs=[1,Ys]}
3 > 1
insert(3,[2],Ys) {Ys=[2,Ys1]}
3 > 2
insert(3,[],Ys1) {Ys1=[3]}
true

0 件のコメント: