Re: DCG question: bind to inputs.
Alexandre Saidi <[email protected]>
| Newsgroups | gmane.comp.gnu.prolog.general |
|---|---|
| Message-ID | <[email protected]> |
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.
>