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/poem/point2.lgt
pmoura 75392e54c7 Logtalk 2.15.0 release files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@757 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2003-02-05 00:15:28 +00:00

40 lines
923 B
Plaintext

/* Points are going to be the fundamental quantity. */
/* These will be defined in Cartesian co-ordinates. */
:- object(point(_X, _Y)).
:- info([
author is 'Paulo Moura',
version is 1.0,
date is 2000/4/22,
comment is 'Parametric object for representing geometric points.',
parnames is ['X', 'Y'],
source is 'Example adopted from the POEM system by Ben Staveley-Taylor.']).
:- public(identical/1).
:- mode(identical(+nonvar), one).
:- public(distance/2).
:- mode(distance(+nonvar, -number), one).
identical(point(X1, Y1)) :-
/* succeeds if the argument and owner points are the same. */
parameter(1, X),
parameter(2, Y),
X1 = X,
Y1 = Y.
distance(point(X1, Y1), Distance) :-
/* finds the distance between argument and owner points. */
parameter(1, X),
parameter(2, Y),
Distance is sqrt((X1-X)*(X1-X)+(Y1-Y)*(Y1-Y)).
:- end_object.