Quelques recherches particulièrement complexes avec aptitude peuvent être
exprimées en utilisant les cibles explicites. Dans
une expression de recherche normale, il n'y a pas de façon de se référer au
paquet ou à la version qui est en train d'être testé. Par exemple, supposons
que l'on cherche tous les paquets P qui dépendent
d'un second paquet Q, tel que
Q recommande
P. Clairement, l'expression de recherche doit
commencer par ?depends(...)?dependsP et
Q aux paquets. Les termes avec des cibles
explicites font exactement la même chose.[17]
	
	  Une cible explicite est introduite par le terme ?for :
	
	  Cela se comporte exactement comme motif, mais la
variable peut être utilisée à l'intérieur du
motif pour faire référence au paquet ou à la
version que ce motif est en train de tester. Vous
pouvez utiliser la variable de deux manières :
	
	      Le terme ?= sélectionnera les paquets ou les versions indiquées par la
variable donnée. Précisément, si le terme ?for est limité à une version
précise, alors ?= sélectionnera soit cette version (si ?= est
limité) soit le paquet entier. Sinon, il sélectionnera toutes les versions
du paquet.
	    
	      Consultez l'Exemple 2.2, « 
		Utilisation du terme ?=.
	       » pour un exemple
d'utilisation d'?=
	    
	      Le terme ?bind(variable,
motif)variable est en
correspondance avec le motif.
	    
	      Pour les termes de la forme ?, une forme courte est
disponible. L'expression
?bind(variable,
?terme[(arguments)])?.
	    variable:terme[(arguments)])
	      Consultez l'Exemple 2.3, « Utilisation du terme ?bind. » pour un exemple
d'utilisation de ?bind
[17] 
	      Le lecteur astucieux aura remarqué qu'il s'agit essentiellement d'une façon
de nommer explicitement la variable avec les λ-termes correspondant
au terme. Un terme typique aurait la forme « λ
x . name-equals(x,
motif) ». Donner une cible explicite rend
x visible dans le langage de recherche.