“dynamique” prédicat en prolog
Si je veux faire une règle dynamique donc je peux l'utiliser affirmer après la base de données de fichier a été chargé, comment dois-je faire? Je suis une utilisation XSB Prologue pour le moment, le fichier est quelque chose comme ceci:
:- dynamic likes/2
likes(mary,tom)
quand j'essaie de consulter le fichier XSB j'obtiens une erreur:
? consult('D:\file.P).
not permitted to assert to static predicatelikes/2
forward continuation...blahblah
Des idées?
OriginalL'auteur KP65 | 2010-03-11
Vous devez vous connecter pour publier un commentaire.
La dynamique de prédicat travaux que vous attendez, si il y a autre chose de mal, si elle ne fonctionne pas pour vous.
Si le test.P ressemble à ceci:
Il peut être consulté, et puis en plus j'aime/2 faits peut être affirmé:
Je viens de tester le même fichier XSB de la version 3.2, il semble fonctionner très bien, mais je dois utiliser 2.7.1 que quelque chose d'autre im en utilisant semble en avoir besoin(interprolog)..Pourriez-vous essayer le même fichier dans 2.7.1 et laissez-moi savoir ce que vous voyez? merci
J'ai essayé d'utiliser XSB 2.7 et a également obtenu l'erreur que vous avez fait, de sorte que le comportement a changé depuis cette version. Cependant, j'ai été en mesure de charger le fichier avec load_dyn('test.P'), qui charge le fichier entier comme dynamique au lieu de les compiler. (Suppression de l' :- ligne dynamique à partir du fichier.) Il est alors possible d'affirmer plus j'aime/2 règles, en plus de celle de test.P. Voir ici pour la documentation sur le chargement dynamique de code: cs.sunysb.edu/~sbprolog/manual2/node5.html
OriginalL'auteur Jeff Dallien