4569fca292
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1858 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
98 lines
1.4 KiB
Plaintext
98 lines
1.4 KiB
Plaintext
=================================================================
|
|
Logtalk - Object oriented extension to Prolog
|
|
Release 2.29.5
|
|
|
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
|
=================================================================
|
|
|
|
|
|
% start by loading the example:
|
|
|
|
| ?- logtalk_load(operators(loader)).
|
|
...
|
|
|
|
|
|
% operators declared inside an object are not visible outside:
|
|
|
|
| ?- double::(I double J).
|
|
|
|
Syntax error: Operator expected
|
|
|
|
|
|
% you must use instead functor notation:
|
|
|
|
| ?- double::double(I, J).
|
|
|
|
I = 1
|
|
J = 2 ;
|
|
|
|
I = 2
|
|
J = 4 ;
|
|
|
|
I = 3
|
|
J = 6
|
|
|
|
yes
|
|
|
|
|
|
% operators also affect inputing of terms, enabling this example to work:
|
|
|
|
| ?- triple::triple(I, J).
|
|
|
|
I = 1
|
|
J = 3 ;
|
|
|
|
I = 2
|
|
J = 6 ;
|
|
|
|
I = 3
|
|
J = 9
|
|
|
|
yes
|
|
|
|
|
|
% check the file "previous.txt" generated from the file "next.txt" by the object "reverse"
|
|
% by opening the files on a text editor
|
|
|
|
|
|
% the "edge" operator on the "local.lgt" source file is not globally visible:
|
|
|
|
| ?- graph1::(N1 edge N2).
|
|
uncaught exception: error(syntax_error('user_input:10 (char:13) ) or operator expected'),read_term/3)
|
|
|
|
|
|
% you must use instead functor notation:
|
|
|
|
| ?- graph1::edge(N1, N2).
|
|
|
|
N1 = a
|
|
N2 = b ;
|
|
|
|
N1 = a
|
|
N2 = c ;
|
|
|
|
N1 = b
|
|
N2 = d ;
|
|
|
|
N1 = c
|
|
N2 = d
|
|
|
|
yes
|
|
|
|
|
|
| ?- graph1::path(a, d, Path).
|
|
|
|
Path = [a, b, d] ;
|
|
|
|
Path = [a, c, d]
|
|
|
|
yes
|
|
|
|
|
|
% confirm that the "edge" operator have not became global:
|
|
|
|
| ?- current_op(P, T, edge).
|
|
|
|
no
|
|
|