Dear Sean,
As long as I remeber when I used to do DCG is that you must put your own Prolog Clause for that :

foo(X,In, Out) :- ....

If ever your DCG rule is :
foo(X) --> [C], bar(X, ...), {format(...)}.

then you can write :
foo(X, [C | Cs_temp ], Cs) :- bar(X, Cs_temp, Cs), format(....).

DCG accepts that you insert your own Prolog predicates.

Alex

emacstheviking <[email protected]> a écrit :

Hi,

After reading the manual (section 7.17.1 again) I am still confused... If I
have this DCG rule:

foo(X) --> bar(X)

I know it expands to:

foo(X,A,B) :- bar(X, A, B).

How do I add a format statement like this:

foo(X) --> bar(X), {format("bar(X) ok, X is ~w~n", [???])}.

How do I bind to those two input arguments that are the source list and the
resulting output list so I can do things with them / to them ? Sure I can
print out X because that is in scope as it were but how to get A and B ?? I
know this is a simple question and even worse I know I think I already know
the answer, I just don't know I know yet.

Thanks,
Sean.





_______________________________________________
Users-prolog mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/users-prolog

Reply via email to