else all_products variables prolog return-value

variables - all_products - shopify liquid operators



Prólogo: imprime el valor de una variable (1)

Simplemente no puedo entender cómo imprimir el valor de X Esto es lo que intenté en el nivel superior:

59 ?- read(X). |: 2. X = 2. 60 ?- write(X). _G253 true.

¿Qué es _G253 ? No quiero el número de índice, quiero el valor al que X está obligado. ¿Qué debo hacer para imprimir el valor de X ?


Cuando escribe write(X). en el prompt interactivo, y nada más, X no está limitado a nada en particular. Si desea leer X del usuario y luego escribirlo, intente escribir read(X), write(X). en el prompt.

?- read(X), write(X). |: 28. 28 X = 28.

SWI Prolog mantiene un historial de enlaces de nivel superior; escribe help. para ir al manual, luego buscar bindings o simplemente navegar a la sección 2.8 del manual, ''Reutilización de enlaces de nivel superior''. Allí, puede aprender que el valor más reciente de cualquier variable vinculada a un objetivo de nivel superior exitoso se retiene, y puede referirse al mismo utilizando el nombre de la variable, con el prefijo de un signo de dólar. Entonces las interacciones como las siguientes son posibles:

?- read(X). |: 42. X = 42. ?- write($X). 42 true.

Pero un objetivo de nivel superior que simplemente usa el nombre de la variable X se interpretará como el uso de una variable nueva; hacerlo de lo contrario violaría la semántica normal de Prolog.