Dear All,
We
are happy to announce a new edition of the Dogelog Player:
- Dot Notation:
We borrowed from formerly Jekejeke Prolog optionable custom binary
forms. An operator declaration such as op(100, yfx, '.') does
now parse and unparse the dot notation A.B as '$DOT'(A,B).
Avoiding a functor clash with the consing notation [A|B]. The
implementation is 100% Prolog, and thus uniformly available for the
JavaScript, Python and Java target.
- Arrow Notation:
We borrowed from formerly Jekejeke Prolog optionable custom variadic
forms. An operator declaration such as op(700, xfx, '=>') does
now parse and unparse the arrow notation (P => G) as '$ANON'(H,K,B,...).
Compared to library(lambda), it leads to more efficient single step
reductions inside the new library(arrow). Again uniformly available
for the JavaScript, Python and Java target.
- DCG phrase/3:
This was a gap that slipped our attention. It turns out that
Dogelog Player didn't have DCG phrase/3, although it had already
DCG (-->)/2. Luckily the step from (-->)/2 to phrase/3 is
relatively small and this release features this predicate.
Turns out it can be used for Strudel style music coding.
Have Fun!