1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
=================================================================
Logtalk - Object oriented extension to Prolog
Release 2.27.1
Copyright (c) 1998-2006 Paulo Moura. All Rights Reserved.
=================================================================
% start by loading the example:
| ?- logtalk_load(aliases(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
| ?- square(2)::predicate_property(side(_), Property).
Property = public ;
Property = static ;
Property = declared_in(rectangle(_G264, _G265)) ;
Property = defined_in(rectangle(_G297, _G298)) ;
Property = alias(width(_G182))
yes
| ?- square(2)::predicate_property(width(_), Property).
Property = public ;
Property = static ;
Property = declared_in(rectangle(_G262, _G263)) ;
Property = defined_in(rectangle(_G293, _G294))
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
|