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/aliases/SCRIPT
pmoura 20dcf89f9a Logtalk 2.21.5 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1171 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2004-11-03 00:13:01 +00:00

68 lines
1.2 KiB
Plaintext

=================================================================
Logtalk - Object oriented extension to Prolog
Release 2.21.5
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
=================================================================
% start by loading the example:
| ?- logtalk_load(loader).
...
% check the object square(_) public protocol:
| ?- square(_)::current_predicate(Predicate).
Predicate = side/1 ;
Predicate = width/1 ;
Predicate = height/1 ;
Predicate = area/1
yes
% test the side/1 alias:
| ?- square(2)::side(Side).
Side = 2
yes
% check the object circle(_) public protocol:
| ?- circle(_)::current_predicate(Predicate).
Predicate = r/1 ;
Predicate = rx/1 ;
Predicate = ry/1 ;
Predicate = area/1
yes
% test the r/1 alias:
| ?- circle(3)::r(Radius).
Radius = 3
yes
| ?- circle(3)::predicate_property(r(_), Property).
Property = public ;
Property = static ;
Property = declared_in(ellipse(_G266, _G267)) ;
Property = defined_in(ellipse(_G299, _G300)) ;
Property = alias(rx(_G177))
yes
| ?- circle(3)::predicate_property(rx(_), Property).
Property = public ;
Property = static ;
Property = declared_in(ellipse(_G261, _G262)) ;
Property = defined_in(ellipse(_G292, _G293))
yes