Cet article est une quête annexe du tuto général pour ASP, s'intéressant aux directives de métaprogrammation qui n'y ont pas été présentées.
#min et #max
Utiles.
#count
Utile.
Mais #count a un côté obscur : voir la quête annexe sur l'encoding.
Version abrégée
Usage comme condition
Déjà présenté dans le tuto, je le rappelle ici pour la convénience ; le comptage d'atomes peut être utilisé dans le corps des règles, comme condition :
p :- 2{q(a,_)}2.
Ici, p
ne sera vrai que si exactement deux atomes q/2 avec a
comme premier argument sont vrais.
#project
Un détail avec de l'importance.
#program
Des fichiers dans des fichiers. Présenté rapidement ici, la directive #program n'est utile que lorsque utilisée avec un langage de script pour manipuler le grounding/solving. Voir l'annexe sur les variantes de solving.
#defined
a(X) :- b(X).
#defined b/1.