Bonjour,
Je voudrais définir une liste de 3 éléments variables.
Liste=[Var1, Var2,Var3];
Comment le définir sous Prolog.
Dans les exemple que je vois c'est soit:
une liste vide []
une liste non variable: [1,2,3]
En espérant être claire :-/
Version imprimable
Bonjour,
Je voudrais définir une liste de 3 éléments variables.
Liste=[Var1, Var2,Var3];
Comment le définir sous Prolog.
Dans les exemple que je vois c'est soit:
une liste vide []
une liste non variable: [1,2,3]
En espérant être claire :-/
La réponse est dans la question !Citation:
Je voudrais définir une liste de 3 éléments variables.
Liste=[Var1, Var2,Var3],
Sinon tu peux aussi faire length(L, 3).
Voici mon crash log de la console:
Et mon fichier z.plCitation:
?- constrir(z).
ERROR: toplevel: Undefined procedure: constrir/1 (DWIM could not correct goal)
?- consult(z).
Warning: /Users/ancrou/z.pl:1:
Singleton variables: [Liste, Var1, Var2, Var3]
ERROR: /Users/ancrou/z.pl:1:
No permission to modify static_procedure `(=)/2'
% z compiled 0.00 sec, 400 bytes
true.
:?Citation:
Liste=[Var1, Var2,Var3].
Ah ben oui, il faut écrire des prédicats, il n'y a qu'en ligne de commande que tu peux écrire L = [Var1, Var2, Var3].
Si tu écris un fichier z.pl il faut donner une règle :Citation:
1 ?- L = [Var1, Var2, Var3].
L = [Var1, Var2, Var3].
A la compile il te signalera qu'il y 3 variables "singleton", et ensuite tu peux exécuter ton fichier :Code:
1
2
3 test :- L = [Var1, Var2, Var3], writeln(L).
Tu vois d'ailleurs qu'il y a une différence entre l'affichage top-level et l'affichage avec write.Citation:
2 ?- test.
[_G950, _G953, _G956]
true.
Je viens de créer une règle par listes.
ça compile bien.
Je vais faire la suite, c'est-à-dire les utiliser ;)
Merci de votre aide.