This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/Logtalk/examples/operators/SCRIPT.txt
pmoura 4569fca292 Logtalk 2.29.5 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1858 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2007-03-28 22:44:31 +00:00

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