En este grupo En todos

Foro de Prolog



DCG regresar valor si es átomo

Alvaro
San Jose, Costa Rica
Escrito por Alvaro Fallas
el 05/09/2012

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).