Logtalk 2.30.2 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1908 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
@@ -35,6 +35,17 @@ objects and categories:
|
||||
bypass
|
||||
using the {} DCG construct together with the {} Logtalk control
|
||||
construct
|
||||
tokenizer
|
||||
natural language tokenizer example
|
||||
macaddr
|
||||
validator for MAC addresses
|
||||
morse
|
||||
decoder for Morse code messages; illustrate how to use scope
|
||||
directives to declare grammar rule non-terminals
|
||||
|
||||
This folder contains an example ("tokenizer") adopted with permission from
|
||||
a Michael A. Covington example (http://www.ai.uga.edu/~mc/). See the file
|
||||
"tokenizer.lgt" for more details.
|
||||
|
||||
This folder contains two examples of DCGs ("bom" and "faa") adopted with
|
||||
permission from the Amzi! Prolog documentation. The documentation is
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
@@ -20,13 +20,21 @@ Result = -9
|
||||
yes
|
||||
|
||||
|
||||
% Recognize MAC addresses:
|
||||
% recognize MAC addresses:
|
||||
|
||||
| ?- macaddr::valid("00:1e:4a:ef:72:8b").
|
||||
|
||||
yes
|
||||
|
||||
|
||||
% decode Morse code messages:
|
||||
|
||||
?- morse::phrase(morse(Message), "... --- ...").
|
||||
|
||||
Message = [sos]
|
||||
yes
|
||||
|
||||
|
||||
% solve a cellphone keypad encoded enigma:
|
||||
|
||||
| ?- enigma::solve("4 96853 5683 86 4283 346637 9484 968 8664448", Message).
|
||||
|
@@ -7,7 +7,6 @@
|
||||
date is 2006/01/22,
|
||||
comment is 'Example of using DCG rules to decrypt a enigma where words are made of numbers corresponding to the characters on a cellphone keypad.']).
|
||||
|
||||
:- public(solve/2).
|
||||
:- public(solve/2).
|
||||
:- mode(solve(+string, -list(atom)), zero_or_one).
|
||||
:- info(solve/2, [
|
||||
|
@@ -7,6 +7,7 @@
|
||||
parsetree,
|
||||
sentences,
|
||||
tokenizer,
|
||||
morse,
|
||||
macaddr,
|
||||
url,
|
||||
xml,
|
||||
|
86
Logtalk/examples/dcgs/morse.lgt
Normal file
86
Logtalk/examples/dcgs/morse.lgt
Normal file
@@ -0,0 +1,86 @@
|
||||
|
||||
:- object(morse).
|
||||
|
||||
:- info([
|
||||
version is 1.0,
|
||||
author is 'Paulo Moura',
|
||||
date is 2007/06/14,
|
||||
comment is 'Morse code decoder.']).
|
||||
|
||||
:- public(morse//1).
|
||||
:- mode(morse(-list(atom)), zero_or_one).
|
||||
:- info(morse//1, [
|
||||
comment is 'Recognizes a message in Morse code, returning the corresponding list of words.',
|
||||
argnames is ['Words']]).
|
||||
|
||||
morse([Word| Words]) --> word(Characters), {atom_chars(Word, Characters)}, " ", morse(Words).
|
||||
morse([Word]) --> word(Characters), {atom_chars(Word, Characters)}.
|
||||
|
||||
word([Character| Characters]) --> character(LM), {code(Character, LM)}, " ", word(Characters).
|
||||
word([Character]) --> character(Symbols), {code(Character, Symbols)}.
|
||||
|
||||
character([Symbol| Symbols]) --> symbol([Symbol]), character(Symbols).
|
||||
character([Symbol]) --> symbol([Symbol]).
|
||||
|
||||
symbol(".") --> ".".
|
||||
symbol("-") --> "-".
|
||||
|
||||
code(a, ".-").
|
||||
code(b, "-...").
|
||||
code(c, "-.-.").
|
||||
code(d, "-..").
|
||||
code(e, ".").
|
||||
code(f, "..-.").
|
||||
code(g, "--.").
|
||||
code(h, "....").
|
||||
code(i, "..").
|
||||
code(j, ".---").
|
||||
code(k, "-.-").
|
||||
code(l, ".-..").
|
||||
code(m, "--").
|
||||
code(n, "-.").
|
||||
code(o, "---").
|
||||
code(p, ".--.").
|
||||
code(q, "--.-").
|
||||
code(r, ".-.").
|
||||
code(s, "...").
|
||||
code(t, "-").
|
||||
code(u, "..-").
|
||||
code(v, "...-").
|
||||
code(w, ".--").
|
||||
code(x, "-..-").
|
||||
code(y, "-.--").
|
||||
code(z, "--..").
|
||||
|
||||
code('1', ".----").
|
||||
code('2', "..---").
|
||||
code('3', "...--").
|
||||
code('4', "....-").
|
||||
code('5', ".....").
|
||||
code('6', "-....").
|
||||
code('7', "--...").
|
||||
code('8', "---..").
|
||||
code('9', "----.").
|
||||
code('0', "-----").
|
||||
|
||||
code('.', ".-.-.-").
|
||||
code(',', "--..--").
|
||||
code('?', "..--..").
|
||||
code('''', ".----.").
|
||||
code('!', "-.-.--").
|
||||
%code('!', "— — — ·").
|
||||
code('/', "-..-.").
|
||||
code('(', "-.--.").
|
||||
code(')', "-.--.-").
|
||||
code('&', ".-...").
|
||||
code(':', "---...").
|
||||
code(';', "-.-.-.").
|
||||
code('=', "-...-").
|
||||
code('+', ".-.-.").
|
||||
code('-', "-....-").
|
||||
code('_', "..--.-").
|
||||
code('"', ".-..-.").
|
||||
code('$', "...-..-").
|
||||
code('@', ".--.-").
|
||||
|
||||
:- end_object.
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
@@ -71,3 +71,18 @@ NR = rectangle(2, 1, 3, 4)
|
||||
X2 = 3
|
||||
Y2 = 4
|
||||
yes
|
||||
|
||||
|
||||
% some queries with parametric objects that define "setter"
|
||||
% methods that return updated object identifiers:
|
||||
|
||||
| ?- person(sally, 20)::grow_older(NewId).
|
||||
|
||||
NewId = person(sally, 21)
|
||||
yes
|
||||
|
||||
|
||||
| ?- employee(sally, 21, 1200)::give_raise(250, NewId).
|
||||
|
||||
NewId = employee(sally, 21, 1450)
|
||||
yes
|
||||
|
@@ -201,7 +201,7 @@
|
||||
|
||||
|
||||
/* The following parametric object illustrates a solution for implementing
|
||||
modifiable object state. The idea is to represent object state by using
|
||||
backtracable object state. The idea is to represent object state by using
|
||||
object parameters, defining "setter" predicates/methods that return the
|
||||
updated object identifier.
|
||||
*/
|
||||
@@ -276,3 +276,74 @@
|
||||
*/
|
||||
|
||||
:- end_object.
|
||||
|
||||
|
||||
|
||||
/* The following parametric objects show a solution for dealing with inheritance when
|
||||
defining "setter" predicates/methods that return updated object identifiers.
|
||||
*/
|
||||
|
||||
:- object(person(_Name, _Age)).
|
||||
|
||||
:- info([
|
||||
version is 1.0,
|
||||
author is 'Paulo Moura',
|
||||
date is 2007/6/19,
|
||||
comment is 'A simple representation for people using parametric objects.',
|
||||
parnames is ['Name', 'Age']]).
|
||||
|
||||
:- public(grow_older/1).
|
||||
:- mode(grow_older(-object_identifier), one).
|
||||
:- info(grow_older/1,
|
||||
[comment is 'Increments the person''s age, returning the updated object identifier.',
|
||||
argnames is ['NewId']]).
|
||||
|
||||
grow_older(NewId) :-
|
||||
::age(OldAge, NewAge, NewId),
|
||||
NewAge is OldAge + 1.
|
||||
|
||||
:- protected(age/3).
|
||||
:- mode(age(?integer, ?integer, -object_identifier), zero_or_one).
|
||||
:- info(age/3,
|
||||
[comment is 'Rectangle area.',
|
||||
argnames is ['OldAge', 'NewAge', 'NewId']]).
|
||||
|
||||
age(OldAge, NewAge, person(Name, NewAge)) :- % this rule is compiled into a fact due to
|
||||
this(person(Name, OldAge)). % compilation of the this/1 call inline
|
||||
|
||||
:- end_object.
|
||||
|
||||
|
||||
:- object(employee(Name, Age, _Salary),
|
||||
extends(person(Name, Age))).
|
||||
|
||||
:- info([
|
||||
version is 1.0,
|
||||
author is 'Paulo Moura',
|
||||
date is 2007/6/19,
|
||||
comment is 'A simple representation for employees using parametric objects.',
|
||||
parnames is ['Name', 'Age', 'Salary']]).
|
||||
|
||||
:- public(give_raise/2).
|
||||
:- mode(give_raise(+integer, -object_identifier), one).
|
||||
:- info(give_raise/2,
|
||||
[comment is 'Gives a raise to the employee, returning the updated object identifier.',
|
||||
argnames is ['Amount', 'NewId']]).
|
||||
|
||||
give_raise(Amount, NewId) :-
|
||||
::salary(OldSalary, NewSalary, NewId),
|
||||
NewSalary is OldSalary + Amount.
|
||||
|
||||
:- protected(salary/3).
|
||||
:- mode(salary(?integer, ?integer, -object_identifier), zero_or_one).
|
||||
:- info(salary/3,
|
||||
[comment is 'Rectangle area.',
|
||||
argnames is ['OldSalary', 'NewSalary', 'NewId']]).
|
||||
|
||||
salary(OldSalary, NewSalary, employee(Name, Age, NewSalary)) :-
|
||||
this(employee(Name, Age, OldSalary)).
|
||||
|
||||
age(OldAge, NewAge, employee(Salary, Name, NewAge)) :-
|
||||
this(employee(Salary, Name, OldAge)).
|
||||
|
||||
:- end_object.
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,11 +0,0 @@
|
||||
=================================================================
|
||||
Logtalk - Object oriented extension to Prolog
|
||||
Release 2.27.1
|
||||
|
||||
Copyright (c) 1998-2006 Paulo Moura. All Rights Reserved.
|
||||
=================================================================
|
||||
|
||||
|
||||
The examples in this folder are adopted from the SICStus Prolog manual.
|
||||
|
||||
To load this example and for sample queries, please see the SCRIPT file.
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,120 +0,0 @@
|
||||
=================================================================
|
||||
Logtalk - Object oriented extension to Prolog
|
||||
Release 2.27.1
|
||||
|
||||
Copyright (c) 1998-2006 Paulo Moura. All Rights Reserved.
|
||||
=================================================================
|
||||
|
||||
|
||||
% start by loading the necessary library support files (if not
|
||||
% already loaded):
|
||||
|
||||
| ?- logtalk_load([library(hierarchies_loader), library(types_loader)]).
|
||||
...
|
||||
|
||||
|
||||
% now you are ready for loading the example:
|
||||
|
||||
| ?- logtalk_load(sicstus(loader)).
|
||||
...
|
||||
|
||||
|
||||
% try some simple queries:
|
||||
|
||||
|
||||
| ?- sort(rational)::sort([1/8, 2/7, 6/5, 2/9, 1/3], Sorted).
|
||||
|
||||
Sorted = [1/8, 2/9, 2/7, 1/3, 6/5]
|
||||
yes
|
||||
|
||||
|
||||
| ?- sort(colours)::sort([orange, indigo, red, yellow, violet, blue, green], Sorted).
|
||||
|
||||
Sorted = [red, orange, yellow, green, blue, indigo, violet]
|
||||
yes
|
||||
|
||||
|
||||
% using the pseudo-object user implies using the Prolog built-in standard
|
||||
% order operators:
|
||||
|
||||
| ?- sort(user)::sort([3, 1, 4, 2, 9], Sorted).
|
||||
|
||||
Sorted = [1, 2, 3, 4, 9]
|
||||
yes
|
||||
|
||||
|
||||
% some messages testing object parameter passing and using:
|
||||
|
||||
| ?- red_circle(3)::color(Color).
|
||||
|
||||
Color = red
|
||||
yes
|
||||
|
||||
|
||||
| ?- red_circle(3)::area(Area).
|
||||
|
||||
Area = 28.274334
|
||||
yes
|
||||
|
||||
|
||||
| ?- red_circle(3)::ancestors(As).
|
||||
|
||||
As = [circle(3, red), ellipse(3, 3, red)]
|
||||
yes
|
||||
|
||||
|
||||
% show the execution context using a method (context/3) that is defined in the
|
||||
% hierarchy root and specialized (using super calls) in each descendant:
|
||||
|
||||
| ?- red_circle(3)::context.
|
||||
|
||||
red_circle1
|
||||
self: red_circle(3)
|
||||
this: red_circle(3)
|
||||
sender: user
|
||||
|
||||
circle2
|
||||
self: red_circle(3)
|
||||
this: circle(3,red)
|
||||
sender: user
|
||||
|
||||
ellipse3
|
||||
self: red_circle(3)
|
||||
this: ellipse(3,3,red)
|
||||
sender: user
|
||||
|
||||
yes
|
||||
|
||||
|
||||
% send a conjunction of messages/goals to an object; just some useful syntax
|
||||
% sugar:
|
||||
|
||||
| ?- square(2)::(side(Side), width(Width), height(Height), area(Area)).
|
||||
|
||||
Side = 2
|
||||
Width = 2
|
||||
Height = 2
|
||||
Area = 4
|
||||
yes
|
||||
|
||||
|
||||
% find all messages accepted by an object:
|
||||
|
||||
| ?- square(2)::current_predicate(Pred).
|
||||
|
||||
Pred = side/1 ;
|
||||
Pred = width/1 ;
|
||||
Pred = height/1 ;
|
||||
Pred = area/1
|
||||
yes
|
||||
|
||||
|
||||
% find all data on a specific message accepted by an object:
|
||||
|
||||
| ?- square(_)::predicate_property(side(_), Prop).
|
||||
|
||||
Prop = public ;
|
||||
Prop = static ;
|
||||
Prop = declared_in(square(_133)) ;
|
||||
Prop = defined_in(square(_164))
|
||||
yes
|
@@ -1,6 +1,6 @@
|
||||
================================================================
|
||||
Logtalk - Open source object-oriented logic programming language
|
||||
Release 2.30.1
|
||||
Release 2.30.2
|
||||
|
||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||
================================================================
|
||||
|
@@ -1,23 +0,0 @@
|
||||
|
||||
:- object(circle1(Color),
|
||||
extends(circle(1, Color))).
|
||||
|
||||
|
||||
:- info([
|
||||
author is 'Paulo Moura',
|
||||
version is 1.0,
|
||||
date is 2000/4/22,
|
||||
comment is 'Parametric object for representing geometric circles with radius = 1.',
|
||||
parnames is ['Color'],
|
||||
source is 'Example adopted from the SICStus Objects documentation.']).
|
||||
|
||||
|
||||
context :-
|
||||
write(circle11), nl,
|
||||
self(Self), write('self: '), writeq(Self), nl,
|
||||
this(This), write('this: '), writeq(This), nl,
|
||||
sender(Sender), write('sender: '), writeq(Sender), nl,
|
||||
^^context.
|
||||
|
||||
|
||||
:- end_object.
|
@@ -1,48 +0,0 @@
|
||||
|
||||
:- object(circle(Radius, Color),
|
||||
extends(ellipse(Radius, Radius, Color))).
|
||||
|
||||
|
||||
:- info([
|
||||
author is 'Paulo Moura',
|
||||
version is 1.0,
|
||||
date is 2000/4/22,
|
||||
comment is 'Parametric object for representing geometric circles.',
|
||||
parnames is ['Radius', 'Color'],
|
||||
source is 'Example adopted from the SICStus Objects documentation.']).
|
||||
|
||||
|
||||
:- public(r/1).
|
||||
|
||||
:- mode(r(?number), zero_or_one).
|
||||
|
||||
:- info(r/1, [
|
||||
comment is 'Circle radius.',
|
||||
argnames is ['Radius']]).
|
||||
|
||||
|
||||
r(Radius) :-
|
||||
parameter(1, Radius).
|
||||
|
||||
|
||||
color(Color) :-
|
||||
parameter(2, Color).
|
||||
|
||||
|
||||
rx(Radius) :-
|
||||
::r(Radius).
|
||||
|
||||
|
||||
ry(Radius) :-
|
||||
::r(Radius).
|
||||
|
||||
|
||||
context :-
|
||||
write(circle2), nl,
|
||||
self(Self), write('self: '), writeq(Self), nl,
|
||||
this(This), write('this: '), writeq(This), nl,
|
||||
sender(Sender), write('sender: '), writeq(Sender), nl, nl,
|
||||
^^context.
|
||||
|
||||
|
||||
:- end_object.
|
@@ -1,54 +0,0 @@
|
||||
|
||||
:- object(colours,
|
||||
implements(comparingp)).
|
||||
|
||||
|
||||
:- info([
|
||||
author is 'Paulo Moura',
|
||||
version is 1.0,
|
||||
date is 2000/4/22,
|
||||
comment is 'Implements comparison between visible colors.']).
|
||||
|
||||
|
||||
Colour1 < Colour2 :-
|
||||
order(Colour1, N1),
|
||||
order(Colour2, N2),
|
||||
{N1 < N2}.
|
||||
|
||||
|
||||
Colour1 =< Colour2 :-
|
||||
order(Colour1, N1),
|
||||
order(Colour2, N2),
|
||||
{N1 =< N2}.
|
||||
|
||||
|
||||
Colour1 > Colour2 :-
|
||||
order(Colour1, N1),
|
||||
order(Colour2, N2),
|
||||
{N1 > N2}.
|
||||
|
||||
|
||||
Colour1 >= Colour2 :-
|
||||
order(Colour1, N1),
|
||||
order(Colour2, N2),
|
||||
{N1 >= N2}.
|
||||
|
||||
|
||||
Colour1 =:= Colour2 :-
|
||||
{Colour1 == Colour2}.
|
||||
|
||||
|
||||
Colour1 =\= Colour2 :-
|
||||
{Colour1 \== Colour2}.
|
||||
|
||||
|
||||
order(red, 1).
|
||||
order(orange, 2).
|
||||
order(yellow, 3).
|
||||
order(green, 4).
|
||||
order(blue, 5).
|
||||
order(indigo, 6).
|
||||
order(violet, 7).
|
||||
|
||||
|
||||
:- end_object.
|
@@ -1,88 +0,0 @@
|
||||
|
||||
:- object(ellipse(_RX, _RY, _Color),
|
||||
imports(proto_hierarchy)).
|
||||
|
||||
|
||||
:- info([
|
||||
author is 'Paulo Moura',
|
||||
version is 1.0,
|
||||
date is 2000/4/22,
|
||||
comment is 'Parametric object for representing geometric ellipses.',
|
||||
parnames is ['RX', 'RY', 'Color'],
|
||||
source is 'Example adopted from the SICStus Objects documentation.']).
|
||||
|
||||
|
||||
:- uses(math_constants).
|
||||
|
||||
|
||||
:- public(color/1).
|
||||
|
||||
:- mode(color(?atom), zero_or_one).
|
||||
|
||||
:- info(color/1, [
|
||||
comment is 'Ellipse color.',
|
||||
argnames is ['Color']]).
|
||||
|
||||
|
||||
:- public(rx/1).
|
||||
|
||||
:- mode(rx(?number), zero_or_one).
|
||||
|
||||
:- info(rx/1, [
|
||||
comment is 'Ellipse x axis.',
|
||||
argnames is ['Rx']]).
|
||||
|
||||
|
||||
:- public(ry/1).
|
||||
|
||||
:- mode(ry(?number), zero_or_one).
|
||||
|
||||
:- info(ry/1, [
|
||||
comment is 'Ellipse y axis.',
|
||||
argnames is ['Ry']]).
|
||||
|
||||
|
||||
:- public(area/1).
|
||||
|
||||
:- mode(area(-number), one).
|
||||
|
||||
:- info(area/1, [
|
||||
comment is 'Ellipse area.',
|
||||
argnames is ['Area']]).
|
||||
|
||||
|
||||
:- public(context/0).
|
||||
|
||||
:- mode(context, one).
|
||||
|
||||
:- info(context/0, [
|
||||
comment is 'Shows execution context (self, this and sender values).']).
|
||||
|
||||
|
||||
color(Color) :-
|
||||
parameter(3, Color).
|
||||
|
||||
|
||||
rx(Rx) :-
|
||||
parameter(1, Rx).
|
||||
|
||||
|
||||
ry(Ry) :-
|
||||
parameter(2, Ry).
|
||||
|
||||
|
||||
area(Area) :-
|
||||
::rx(Rx),
|
||||
::ry(Ry),
|
||||
math_constants::pi(Pi),
|
||||
Area is Rx*Ry*Pi.
|
||||
|
||||
|
||||
context :-
|
||||
write(ellipse3), nl,
|
||||
self(Self), write('self: '), writeq(Self), nl,
|
||||
this(This), write('this: '), writeq(This), nl,
|
||||
sender(Sender), write('sender: '), writeq(Sender), nl, nl.
|
||||
|
||||
|
||||
:- end_object.
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user