=================================================================
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).
J = 3 ;
J = 6 ;
J = 9
% 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)
| ?- graph1::edge(N1, N2).
N1 = a
N2 = b ;
N2 = c ;
N1 = b
N2 = d ;
N1 = c
N2 = d
| ?- graph1::path(a, d, Path).
Path = [a, b, d] ;
Path = [a, c, d]
% confirm that the "edge" operator have not became global:
| ?- current_op(P, T, edge).
no