問題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