git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1973 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
		
			
				
	
	
		
			89 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ================================================================
 | |
| 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
 |