2011年2月13日日曜日

Prologの技芸 11.4節の練習問題

(1)

% substitute(Old,New,OldTerm,NewTerm) :- % NewTermは,OldTerm中のOldをNewに置き換えたものである. substitute(Old,New,Old,New) :- !. substitute(Old,New,Term,Term) :- atomic(Term), !. substitute(Old,New,Term,Term1) :- functor(Term,F,N), functor(Term1,F,N), substitute(N,Old,New,Term,Term1). substitute(N,Old,New,Term,Term1) :- N > 0, !, arg(N,Term,Arg), substitute(Old,New,Arg,Arg1), arg(N,Term1,Arg1), N1 is N-1, substitute(N1,Old,New,Term,Term1). substitute(0,Old,New,Term,Term1).

(2)

% select(X,Xs,Ys) :- % YsはリストXsの一番初めに出てきたXを % 削除したリストである. select(X,[X|Xs],Xs) :- !. select(X,[Y|Ys],[Y|Zs]) :- select(X,Ys,Zs).

0 件のコメント: