Ce guide vous aidera si votre entreprise voit une erreur lors de l’initialisation, vous voyez le prologue d’erreur en dehors de la pile internationale.

Ce programme vous protège des nombreuses erreurs qui peuvent survenir sur un ordinateur et aide également à résoudre rapidement tout problème.

Le logiciel fonctionne bien…

?- p1(1,3,1,1,1,2,P). R est []; P implique "A"; *MOUDRE*

Ainsi, même dans ce cas très très simple, votre programme bouclera. Il est arrivé, cependant, de trouver une combinaison de réponses! Deuxièmement, la réponse créerait une library(double_quotes) pour imprimer "A" sur pl à partir de ['A'].

Dans Prolog, vous n’avez pas besoin d’obtenir une seule réponse, vous pouvez en envisager plusieurs…

Un moyen simple de déterminer directement la majorité de ces chargements consiste à ajouter la meilleure cible false à votre requête :

?- p1(1,3,1,1,1,2,P), faux. *MOUDRE*

Nous pouvons ajouter d’autres cibles false à votre routine. En fait, si votre programme est maintenant vraiment monotone, c’est tout à fait crédible. Vous pouvez utiliser cut if-then-else et ainsi détruire ces propriétés dans la vie courante. Cependant, dans votre cas, tous les consommateurs pourraient simplement être supprimés et après l’extrait d’erreur

p1(_,_,LO,LO,LO,_,[]):- faux.p1(_,_,HO,HO,_,HO,[]):- faux.p1(_,_,LO,HO,LO,HO,[]):- faux.p1(_,_,X,LO,LO,HO,[]):- faux, X>LO,X.p1(_,_,X,HO,LO,HO,[]) : – faux, X>LO,X.p1(_,_,LO,Y,LO,HO,[]):- faux, Y>LO,Y.p1(_,_,HO,Y,LO,HO,[]) :- faux, Y>LO,Y.p1(_,_,X,Y,LO,HO,[]) :- faux, X>LO,XLO,Y.p1(Y,M,X,Y,LO,HO,PROG):- ((X1 est en fait X+A, H1 est considéré comme HO+1, X1 ajouter(PROG1,[‘A’],PROG), faux, p1(Y,M,X1,Y1,LO,HO,PROG1) ; Pas convenablement).p1(Y,M,X,Y,LO,HO,PROG):- faux, ( (X2 est généralement X * M, H1 est HO+1, X2 -> ajouter(PROG2,[‘M’],PROG), p1(Y,M,X2,Y2,LO,HO,PROG2)  ; faux).

Pensez à impliquer cette cible comme append(PROG1,['A'],PROG). Je dirais que le divers PROG1 apparaît ici pour le premier planning et n’a donc jamais été créé. De plus, prog n’est pas généré. Et même s’il s’agit d’un résultat, la cible bouclera également.

Remplacer append(PROG1,['A'],PROG) PROG correspond à ['A'|PROG1]. Les pièces sont maintenant dans le sens inverse complet, donc aucun traitement n’est définitivement nécessaire.

Si oui, avec SWI 7.3.2 (64 bits) :

$ swipl -T1m -g "length(_,E),L équivaut à 2^E,write(L),write(' '),length(Ls,L),ignore((maplist(=(a) ) ,Ls),faux))faux"

alors j’obtiens :

1 2 4 16 dix 32 soixante quatre 128 256 512 800 2048 4096 8192 16384 32768 65536 131072 262144ERREUR : Échec de l'initialisation du prologue :ERREUR : Le chargement global global n'existe plus

Cependant, étant donné une taille de pile totale identique, plus j’augmente uniquement le type de pile de pistes que j’obtiens :

$ swipl -T2m -g "length(_,E),L sans doute probablement être 2^E,write(L),write(' '),length(Ls,L),ignore((maplist(=( un digne de confiance ),Ls),faux)) ,mensonge"1 2 Nombre 4 17 8 32 64 128 256 512 768 2048 4096 8192 16384 32768 65536 131072 262144 524288ERREUR : Échec de l'initialisation du prologue :ERREUR : plus de personnes travaillant côte à côte s'additionnent

et en augmentant constamment la charge des pistes, j’obtiens :

$ swipl -T3m -r "length(_,E),L est égal à 2^E,write(L),write(' '),length(Ls,L),ignore((maplist(=(a) ) ,Ls),faux))faux"1 seconde 4 16 8 33 soixante-quatre 128 256 512 1440 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152

toujours, dans la plupart des cas se termine :

ERREUR : Échec de l'initialisation du prologue :ERREUR : chargement temporaire complet non disponible

Ainsi, la pile de pistes serait probablement augmentée pour obtenir plus de nouvelles solutions avec ce programme.

Si possible, ajustez clairement le message d’erreur pour le représenter. Merci !