Prolog - regresar valor si es un átomo con DCG

   
Vista:

regresar valor si es un átomo con DCG

Publicado por Alvaro Fallas (1 intervención) el 05/09/2012 16:40:41
Hola a todos espero que se encuentren bien.
Estoy empezando con prolog y apenas había terminado de entender la sintaxis normal cuando ya debo empezar con la DCG. Tengo un pequeño problema. Necesito identificar un átomo usando DCG, con la otra sintaxis lo puedo hacer así

identificador(X,X):-atom(X).


entonces si hago la consulta sería así:

identificador(hola,X).

X= hola

ahora en DCG tengo algo así:

identificador(identi(ident))--> atom(ident), [ident].

sin embargo cuando hago la consulta no obtengo el resultado q deseo, obtengo esto:

identificador([y],X,Y).
false.

Alguna idea de como arreglar este pequeño inconveniente.
la idea es obtener:

identificador([y],X,Y).
identi(y).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Prolog
- Código fuente de Prolog
- Cursos de Prolog
- Temas de Prolog
información
Códigos de Prolog
- Juego Rummy
- Problema resuelto
- Resolver Sudokus

regresar valor si es un átomo con DCG

Publicado por daril daleman@uclv.edu.cu (2 intervenciones) el 05/04/2013 05:50:21
prueba con esto
identificador --> atom(X).

y para preguntar:

phrase(identificador,[X]). %%Si X es un atomo responde YES
phrase(identificador,[hola]).
Yes

o de esta forma para preguntar

oracion(hola,[]). %%Si X es un atomo responde YES
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar