• Answer Set Programming — Métaprogrammation

    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.