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/parametric/SCRIPT.txt

89 lines
1.3 KiB
Plaintext
Raw Normal View History

================================================================
Logtalk - Open source object-oriented logic programming language
Release 2.30.7
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
================================================================
% start by loading the example:
| ?- logtalk_load(parametric(loader)).
...
% some queries using the list parametric object:
| ?- [1, 2, 3]::member(X).
X = 1 ;
X = 2 ;
X = 3 ;
no
| ?- [1, 2, 3]::last(X).
X = 3
yes
| ?- [1, 2, 3]::nextto(2, Y).
Y = 3
yes
| ?- []::member(X).
no
% some queries using the time and date parametric objects:
| ?- date(Year, Month, Day)::today.
Year = 2000
Month = 8
Day = 15
yes
| ?- date(Year, _, _)::(today, \+ leap_year).
Year = 2002
yes
| ?- time(Hours, Mins, Secs)::now.
Hours = 13
Mins = 52
Secs = 42
yes
| ?- R = rectangle(W, H, X, Y), R::init, R::move(3, 4, NR), NR::position(X2, Y2).
R = rectangle(2, 1, 0, 0)
W = 2
H = 1
X = 0
Y = 0
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