.


:




:

































 

 

 

 


Prolog




. , - , , , , , , .

BNF (Backus-Naur Form - -), . BNF. . BNF, .


<s>::=a<s>b

: s ab, , s , , , , s " ". , s - . , b . | . BNF : <s>::=ab|a<s>b , .

, . , s. . , . , . : $

s :

b

, :

& s b b

: a a a b b b

, , ab, aabb .. at", . = 1, 2, 3,.... , , , .

. . , .

, . , .

up ;

dewn .

, . up up up down up down

, . "". , (move) (step), , . :

21. 511


<move>:: - <step> <move>:;= <step> <raove> <Step>:: = iip <step>::= down

, Prolog1,

, . , . , ; , , . , , . , , : , , . , . , .

, . , . , Prolog . Prolog , DCG (Definite Clause Grammar - ). Prolog. , DCG, , . BNF DCG . , BNF DCG :

->[], []. s->[a],s, [].

move --> step,

move --> step, move.

step --> tup].

step --> [down].

, BNF DCG ":: = " "-->", , s Prolog. , , , Prolog.

Prolog, DCG, . , , , , { 8.) -



II. Prolog


. , , .

aabb [ a, a, b, b] [ ]

[ a, a, b, b, ] [ ]

[ , , , , 1, , 1] [ 1, 0, 1]

, , DCG , , , :

% aabb

[])

?- s( yes ?- s([a,a,b], no ?- move( yes "move(
[]). []).
?-no ?- X X no

[ , , , ], []). [ up, up, down], [ up, up, left], [ up, X, up], []).

move(= up; = down;


, Prolog DCG . Prolog Prolog. , Prolog , . . DCG, , :

move(List, Rest):-

step(List, Rest), move(Listl, Rest):-

step(Listl, -List2),

move(List2, Rest).

step([up | Rest], Rest). step([down | Rest], Rest).

? move. move :

move(List, Rest)

, List Rest . :

move( move( move(

[ up, down, up], []).

[ up, down, up, a, b, c], [ a, b, c])

[ up, down, up], [ down, up]).

. 21.1 , :

move(Listl, Rest):-step(Listl, List2), move(List2, Rest).

:

Listl Rest , Listl List2 List2 Rest - .





:


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


:

:

, .
==> ...

1439 - | 1376 -


© 2015-2024 lektsii.org - -

: 0.011 .