________________________________________________________________________

This file is part of Logtalk <http://logtalk.org/>  

Logtalk is free software. You can redistribute it and/or modify it under
the terms of the FSF GNU General Public License 3  (plus some additional
terms per section 7).        Consult the `LICENSE.txt` file for details.
________________________________________________________________________


% 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, \+ date(Year, _, _)::leap_year.

Year = 2002
yes


| ?- time(Hours, Mins, Secs)::now.

Hours = 13
Mins = 52
Secs = 42 
yes


| ?- rectangle(W, H, X, Y)::init, rectangle(W, H, X, Y)::move(3, 4, NR), NR::position(X2, Y2).

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


% some queries with parametric categories:

| ?- speech(winter, wedding)::advice.

Clothes: [pants, sleeves, heavy]
Speech:  [happy, jokes]
yes
