================================================================ 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