Prolog , . , . .
1. .
2. .
II. Prolog
, , , , ; , , . , .
. . , , .
move(move(Step)) -> step{ Step).
move(move(Step, Move)) -> step(Step), move I Move).
step(step(up)) -> [ up].
step(step(down)) -> [ down].
. 1 . "up up down up" 1 + 1 - 1 + 1 = 2. (distance) , . 21.4. .
distance ('up up down up') =
distance('up') + distancet'u p down up') =1 + 1 = 2
. 21.4.
, ( ) .
meaning{ ^, Value) r.ieaning(move (Step, Move), Dist):-
meaning) Step, Dl),
meaning! Move D2)
21. 519
Dist is Dl + D2.
meaning! move{ Step), Dist):-meaning! Step, Dist).
meaning! step! up), 1). meaning! step(down), -1).
, , "up up down up" :
? move[ Tree, (up, up, down, up], [)), meaning[ Tree, Dist), Dist = 2
Tree = move(step (up), move(step(up), move(stept down), move) step t up)))))
21.4. meaning , .. , , , .?- move(Tree, Move, []), meaning(Tree, 5), .