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