Quando si digita write(X).
al prompt interattivo e nient'altro, X non è associato a nulla in particolare. Se si desidera leggere X dall'utente e quindi scriverlo, provare a digitare read(X), write(X).
al prompt.
?- read(X), write(X).
|: 28.
28
X = 28.
SWI Prolog mantiene una cronologia delle associazioni di livello superiore; digitare help.
per entrare nel manuale, quindi cercare bindings
o semplicemente passare alla sezione 2.8 del manuale "Riutilizzo dei collegamenti di livello superiore". Qui puoi apprendere che viene mantenuto il valore più recente di qualsiasi variabile associata a un obiettivo di primo livello e che può essere riferito al nome della variabile, preceduto dal simbolo del dollaro. Così interazioni come la seguente sono possibili:
?- read(X).
|: 42.
X = 42.
?- write($X).
42
true.
Ma un obiettivo di alto livello che accade solo ad usare il nome variabile X sarà interpretato come utilizzando una variabile fresco; fare altrimenti violerebbe la normale semantica del Prolog.
fonte
2012-10-17 17:03:53
possibile duplicato del [Nomi di variabili a SWI Prolog] (http://stackoverflow.com/questions/9358623/variable-names-in-swi-prolog) – false