.


:




:

































 

 

 

 


4. ?- family! pers on (_, Name , _, _) , _, [] ) ?- child





4.1.


a)

6) )

?-

r)


?- family! pers on (_, Name, _, _), _, [])?- child! person! Name, SecondName,

works(__))).

?-

family { person {_, Name, _, unemployed), person(_,_,_,works L,J), _) -

family (Husband, Wife, Children), dateafbirthi Husband, date(_,_, Yearl)), dateofbirthf Wife, date(_,_,Year2)), (Yearl - Year2 >- IS


 


4.2.


 

Yeai:2

Yearl >= 15

),

member! Child, Children).

twinst Childl, Child2):-family! _, _r Children), del! Childl, Children, OtherChildren),

* Childl member! Child2, OtherChildren), dateofbirthl Childl, Date), dateofbirthf Chiid2, Date).


 


4.3.


nth_member(1,!X I LI, X).

nth_raember(K, [Y I L], X)

N1 is N - 1, ntb_member[ N1, L X).


i X - % ! I L]: - % X - n- i is [V I L)


 


4.4

4.5.


, , , .

[ ], _):-

accepts (State,

: -
[X I Rest], MaxMoves)

final{ State) accepts,- State,

MaxMoves > 0,

trans(State, X, State 1],

NewMax is MaxMoves - 1,

accepts] Statel, Rest, NewMax). Accepts,- State, String, MaxMoves}:

MaxMoves > 0,

silent! State, Statel),

HewMax is KaxMoves - 1,

accepts[ Statel, String, NewMan).


 



jump! X/Y, XI/YD
(dxy(Dx, Dy)

t

4.6. 4.7.


a)


 

member
(Y,
*
: -

[1,2,3,4,5,5,7,8]).

% X/Y Xl/Yl


 





)

)


cbty(Dy, Dx) % ),

XI is X + Dx, inboard! XI), Yl is Y + Dy, ir.boarcM Yl). dxy (dxy (

% XI

1

i Yl 2, 1). 2 , 2, -1), % 2 , 1 dxy(-2, 1), % 2 , 1 dxy(-2, - 1). % 2 , 1 inboard(Coord):- %

% < Coord, Coord < 9.

knightpatht [Square]). t Square knightpath([S1,S2 ] Rest)):-

jump(SI, S2),

knigbtpath; [S2 I Rest]).

?- knightpathf [2/1,R, 5/4,S,X/B]).


5


5.1,


 

a) x = i,-
  X = 2;
6) X = 1
  Y = 1;
  X.= 1
  Y = 2;
  X = 2
  4 = 1;
  X = 2
  Y = 2;
B) X = 1
  Y = 1;
  X = 1
  Y = 2

 


5.2.

53.

5.4. 5.5,


, class .

class [ Number, positive):-

Number > 0,!. class(0, zero):-!. class [ number, negative).

split! [], [],[]> split! [X I L], [X I LI], L2):-

X > = 0, I,

split(L, LI, L2). split) [X I L), LI, [X i L2J);-

split! L, LI, L2].

member (Item, Candidates], not member! Item, RuledOut)

set_difference! [], _, []). set_difference{ [X I LI], L2, L):-

member! X, 12),!,

set_difference(LI, L2, L), set_difference{ [X I LI], L2, [X I L]):-

set_difference(LI, L2, L)..


 




5.6. unifiable( [], _, []}.

unifiablet [First I Rest], Term, List):-

not! First = Term),!,

unitiable(Rest, Term, List). unifiablel [First I Rest!, Term, [First I List])

unifiablet Rest, Term, List).


-






:


: 2015-10-01; !; : 340 |


:

:

, , .
==> ...

2163 - | 1803 -


© 2015-2024 lektsii.org - -

: 0.01 .