File: SCRIPT

package info (click to toggle)
yap 5.1.1-3
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 16,124 kB
  • ctags: 14,650
  • sloc: ansic: 122,796; perl: 22,545; sh: 3,768; java: 1,277; makefile: 1,191; xml: 739; tcl: 624; lisp: 142; awk: 9
file content (84 lines) | stat: -rw-r--r-- 1,671 bytes parent folder | download
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