string prolog swi-prolog

string - Citas de escape de SWI Prolog



swi-prolog (1)

Para ver una discusión sobre las cadenas de caracteres aquí, son específicas de SWI-Prolog pero usan las mismas reglas de escape que los átomos. Hay muchas formas de ingresar comillas en un átomo en un texto de Prolog:

1) Duplicarlos. Así que, por ejemplo, "no puede ser" es un átomo, con una sola comilla como cuarto carácter y ninguna otra comilla simple.

2) Escapando de ellos, con la barra invertida. Entonces, por ejemplo, ''no puede ser'' es el mismo átomo que ''no puede ser''.

3) Carácter que los codifica, usando un código octal y una barra diagonal de cierre. Entonces, por ejemplo, ''can / 47 / t be'' es el mismo átomo que ''can''''t'' to ''.

4) Carácter que los codifica, usando código hexadecimal y una barra diagonal de cierre. Por ejemplo, ''can / x27 / t be'' es el mismo átomo que ''can''''t'' no ''.

Las posibilidades anteriores están todas definidas en el estándar ISO. Una implementación de Prolog podría definir otras posibilidades.

Adiós

PD: Aquí hay un ejemplo ejecutado en SWI-Prolog, usando un personaje de ejemplo diferente. En la primera consulta de ejemplo a continuación, no es necesario doblar, solo se puede doblar para la cita circundante.

La última consulta de ejemplo a continuación muestra una sintaxis específica de SWI-Prolog que no se encuentra en el estándar ISO, es decir, que usa una barra invertida u con un código hexadecimal de ancho fijo:

Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.1.33) Copyright (c) 1990-2015 University of Amsterdam, VU Amsterdam ?- X = ''she said "bye"''. X = ''she said "bye"''. ?- X = ''she said /"bye/"''. X = ''she said "bye"''. ?- X = ''she said /42/bye/42/'. X = ''she said "bye"''. ?- X = ''she said /x22/bye/x22/'. X = ''she said "bye"''. ?- X = ''she said /u0022bye/u0022''. X = ''she said "bye"''.

Necesito poner "" alrededor de una cadena en prólogo. Obtengo la información de otro programa y, como se ve, no puedo escapar al "en este programa, así que tengo que agregar el" en prólogo, de lo contrario, la declaración de prólogo no funciona.

¡Gracias por tu ayuda!