42aabce1bb
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1973 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
70 lines
1.2 KiB
Plaintext
70 lines
1.2 KiB
Plaintext
================================================================
|
|
Logtalk - Open source object-oriented logic programming language
|
|
Release 2.30.7
|
|
|
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
|
================================================================
|
|
|
|
|
|
% start by loading the "assignvars" category and the example:
|
|
|
|
| ?- logtalk_load(assignvars(loader)).
|
|
...
|
|
|
|
|
|
% rectangle example:
|
|
|
|
?- rectangle(2, 3, _)::(init, position(X0, Y0), move(3, 7), position(X1, Y1), move(2, 5), position(X2, Y2)).
|
|
|
|
X0 = 0
|
|
Y0 = 0
|
|
X1 = 3
|
|
Y1 = 7
|
|
X2 = 2
|
|
Y2 = 5
|
|
|
|
Yes
|
|
|
|
|
|
% finite state machine example:
|
|
|
|
| ?- fsm(T, I, F), fsm(T, I, F)::recognise([0,1,1,2,1,2,0]).
|
|
|
|
red-0-red
|
|
red-1-green
|
|
green-1-yellow
|
|
yellow-2-red
|
|
red-1-green
|
|
green-2-red
|
|
red-0-red
|
|
|
|
T = [red-0-red, red-1-green, red-2-red, yellow-0-red, yellow-1-green, yellow-2-red, green-0-yellow, ... -... -yellow, ... -...]
|
|
I = red
|
|
F = [red]
|
|
|
|
Yes
|
|
|
|
|
|
% finite state machine example:
|
|
|
|
| ?- fsm(T, I, F), !, fsm(T, I, F)::recognise([0,1,1,2,1,2,1,0]).
|
|
|
|
red-0-red
|
|
red-1-green
|
|
green-1-yellow
|
|
yellow-2-red
|
|
red-1-green
|
|
green-2-red
|
|
red-1-green
|
|
green-0-yellow
|
|
backtracking...
|
|
backtracking...
|
|
backtracking...
|
|
backtracking...
|
|
backtracking...
|
|
backtracking...
|
|
backtracking...
|
|
backtracking...
|
|
|
|
No
|