61 lines
1.0 KiB
Plaintext
61 lines
1.0 KiB
Plaintext
|
=================================================================
|
||
|
Logtalk - Object oriented extension to Prolog
|
||
|
Release 2.26.2
|
||
|
|
||
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||
|
=================================================================
|
||
|
|
||
|
|
||
|
% start by compiling and loading the Prolog module files as objects:
|
||
|
|
||
|
| ?- logtalk_load(modules(loader)).
|
||
|
...
|
||
|
|
||
|
|
||
|
% call one of the module exported predicates using message sending:
|
||
|
|
||
|
| ?- test::names.
|
||
|
|
||
|
paulo
|
||
|
carlos
|
||
|
helena
|
||
|
yes
|
||
|
|
||
|
|
||
|
% same goal as above but the call is made using a meta-predicate
|
||
|
% imported from other module:
|
||
|
|
||
|
| ?- test::test.
|
||
|
|
||
|
paulo
|
||
|
carlos
|
||
|
helena
|
||
|
yes
|
||
|
|
||
|
|
||
|
% test the compilation of the module export/1 directive; module
|
||
|
% exported predicates become public predicates:
|
||
|
|
||
|
| ?- exports::current_predicate(Pred).
|
||
|
|
||
|
Pred = p/1
|
||
|
yes
|
||
|
|
||
|
| ?- exports::predicate_property(p(_), Prop).
|
||
|
|
||
|
Prop = public ;
|
||
|
Prop = static ;
|
||
|
Prop = declared_in(exports) ;
|
||
|
Prop = defined_in(exports)
|
||
|
yes
|
||
|
|
||
|
|
||
|
% call the module exported/public predicate using message sending:
|
||
|
|
||
|
| ?- exports::p(N).
|
||
|
|
||
|
N = 1 ;
|
||
|
N = 2 ;
|
||
|
N = 3
|
||
|
yes
|