問題1
P = a,
Q = [b, c].
問題2
X = a,
Y = a,
Z = a,
U = a.
問題3
X=3+4.の場合
X = 3+4.
X is 3+4.の場合
X = 7.
問題4
naiseki([],[],0):-!.
naiseki([A|L1],[B|L2],X):-
naiseki(L1,L2,Y),
X is Y +A * B.
問題5
nban(1,[X|_],X):-!.
nban(N,[_|L],X):- N>1,N1 is N-1,nban(N1,L,X).
実行結果
?- nban(3,[2,3,4,5],A).
A = 4.
問題6
max([X], X).
max([X|L], M) :-
max(L, M1), M is max(X,M1).
問題7
f(0, 1).
f(N, F) :-
N > 0,
N1 is N-1,
f(N1, F1),
F is N*F1.
問題8
rev([],[]).
rev([X|L],R):-
rev(L,R1),
append(R1,[X],R).
問題9
union([],S,S).
union([X|L],S,U):-
member(X,S),!,union(L,S,U).
union([X|L],S,[X|U]):-
union(L,S,U).
問題10
qs([],[]).
qs([P|L],SL):-
partition(P,L,SHO,DAI),
qs(SHO,QSHO),
qs(DAI,QDAI),
append(QSHO,[P|QDAI],SL).
partition(_,[],[],[]).
partition(P,[X|L],[X|S],D):-
X<P,!,partition(P,L,S,D).
partition(P,[X|L],S,[X|D]):-
partition(P,L,S,D).
問題11
d(X,X,1):-!.
d(C,X,0):-atomic(C),!.
d(Y+Z,X,DY+DZ):-!,d(Y,X,DY),d(Z,X,DZ).
d(Y-Z,X,DY-DZ):-!,d(Y,X,DY),d(Z,X,DZ).
d(Y*Z,X,DY*Z+Y*DZ):-!,d(Y,X,DY),d(Z,X,DZ).
d(Y/Z,X,(DY*Z-Y*DZ)/Z^2):-!,d(Y,X,DY),d(Z,X,DZ).
d(Y,X,bibun(Y,X)).
問題12
kan(X+Y,KXY):-!,kan(X,KX),kan(Y,KY),k1(KX+KY,KXY).
kan(X-Y,KXY):-!,kan(X,KX),kan(Y,KY),k1(KX-KY,KXY).
kan(X*Y,KXY):-!,kan(X,KX),kan(Y,KY),k1(KX*KY,KXY).
kan(X,X).
k1(0*X,0):-!.
k1(X*0,0):-!.
k1(1*X,X):-!.
k1(X*1,X):-!.
k1(0+X,X):-!.
k1(X+0,X):-!.
k1(0-X,MX):-!,MX is (-1)*X.
k1(X-0,X):-!.
k1(X+Y,S):-number(X),number(Y),S is X+Y,!.
k1(X-Y,S):-number(X),number(Y),S is X-Y,!.
k1(X*Y,S):-number(X),number(Y),S is X*Y,!.
k1(X,X).
問題13
問題14
?- p(s(s(0)),A,s(s(s(0)))).
A = s(0).
問題15
最終更新:2010年08月02日 13:42