2006-02-10 17:44:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								<?xml version="1.0" encoding="utf-8"?>  
						 
					
						
							
								
									
										
										
										
											2005-12-24 18:00:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
							 
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-12-24 18:00:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< html  xmlns = "http://www.w3.org/1999/xhtml"  xml:lang = "en" >  
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< head >  
						 
					
						
							
								
									
										
										
										
											2006-02-10 17:44:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									< meta  http-equiv = "content-type"  content = "application/xml+xhtml; charset=utf-8"  / > 
							 
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									< title > Logtalk entity directive: uses/2< / title > 
							 
						 
					
						
							
								
									
										
										
										
											2005-12-24 18:00:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									< link  rel = "stylesheet"  href = "../../screen.css"  type = "text/css"  media = "screen" / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< link  rel = "stylesheet"  href = "../../print.css"  type = "text/css"  media = "print" / > 
							 
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / head >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< body >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-12-24 18:00:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< div  class = "top-left" > Logtalk reference manual< / div >   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  class = "top-right" > Entity directive: uses/2< / div >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  class = "bottom-left" > < span  class = "page" / > < / div >   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  class = "bottom-right" > < span  class = "page" / > < / div >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  class = "navtop" > < a  href = "../../index.html" > contents< / a >  >  < a  href = "../index.html" > reference manual< / a >  >  < a  href = "../index.html#directives" > directives< / a > < / div >  
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-06-12 10:39:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< h2  id = "directives_uses2"  class = "codenp" > uses/2< / h2 >  
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< h4 > Description< / h4 >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-12-24 18:00:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< pre > uses(Object, Predicates) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								uses(Object, PredicatesAndAliases)< / pre > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< p >  
						 
					
						
							
								
									
										
										
										
											2007-06-12 10:39:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Declares that all calls (made from predicates defined in the category or object containing the directive) to the specified predicates are to be interpreted as messages to the specified object. Thus, this directive may be used to simplify writing of predicate definitions by allowing the programmer to omit the < code > Object::< / code >  prefix when using the predicates listed in the directive (as long as the predicate calls do not occur as arguments for user-defined meta-predicates or for non-standard Prolog meta-predicates not declared on the config files).
							 
						 
					
						
							
								
									
										
										
										
											2005-12-24 18:00:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< / p >  
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< p >  
						 
					
						
							
								
									
										
										
										
											2005-12-24 18:00:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								It is possible to specify a predicate alias using the notation < code > Functor/Arity::Alias/Arity< / code > . Aliases may be used either for avoiding conflicts between predicates specificed in several < code > uses/2< / code >  directives or for giving more meanfingul names considering the using context of the predicates.
							 
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / p >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< h4 > Template and modes< / h4 >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-12-24 18:00:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< pre > uses(+object_identifier, +predicate_indicator_list) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								uses(+object_identifier, +predicate_indicator_alias_list)< / pre > 
							 
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< h4 > Examples< / h4 >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2006-11-07 17:11:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< pre > :- uses(list, [append/3, member/2]). 
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								foo :-
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ...,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    findall(X, member(X, L), A),    % the same as: findall(X, list::member(X, L), A)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    append(A, B, C),                % the same as: list::append(A, B, C)
							 
						 
					
						
							
								
									
										
										
										
											2005-12-24 18:00:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ...< / pre > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< p >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Another example, using the extended notation that allows us to define predicate aliases:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / p >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< pre > :- uses(btrees, [new/1::new_btree/1]). 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:- uses(queues, [new/1::new_queue/1]).
							 
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-12-24 18:00:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								btree_to_queue :-
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ...,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    new_btree(Tree),     % the same as: btrees::new(Tree)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    new_queue(Queue),    % the same as: queues::new(Queue)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ...< / pre > 
							 
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  class = "footer" >  
						 
					
						
							
								
									
										
										
										
											2006-11-07 17:11:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									< div  class = "copyright" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< span > Copyright ©  < a  href = "mailto:pmoura@logtalk.org" > Paulo Moura< / a >  —  < a  href = "http://logtalk.org" > Logtalk.org< / a > < / span > < br / > 	
							 
						 
					
						
							
								
									
										
										
										
											2007-06-12 10:39:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< span > Last updated on: June 4, 2007< / span > 
							 
						 
					
						
							
								
									
										
										
										
											2006-11-07 17:11:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									< / div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = "navbottom" > 
							 
						 
					
						
							
								
									
										
										
										
											2006-12-28 13:03:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< span > < a  href = "synchronized1.html" > previous< / a >  | < a  href = "../../glossary.html" > glossary< / a >  | < a  href = "../index.html#directives" > next< / a > < / span > < br / > 
							 
						 
					
						
							
								
									
										
										
										
											2006-11-07 17:11:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< span > < a  href = "http://validator.w3.org/check/referer" > XHTML< / a >  + < a  href = "http://jigsaw.w3.org/css-validator/check/referer" > CSS< / a > < / span > 
							 
						 
					
						
							
								
									
										
										
										
											2005-12-24 18:00:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									< / div > 
							 
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / div >  
						 
					
						
							
								
									
										
										
										
											2005-12-24 18:00:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / body >  
						 
					
						
							
								
									
										
										
										
											2006-11-07 17:11:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-08-16 17:09:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / html >