Markus Triska
Markus Triska
There is now excellent initial and ongoing work in this direction by @bakaq and @constraintAutomaton: **https://github.com/bakaq/pkg.pl** Please take a look!
For reference, quoting from the Prolog ISO standard: 6.4.5 Floating point numbers float number token (* 6.4.5 *) = integer constant (* 6.4.4 *), fraction (* 6.4.5 *), [ exponent...
> BUT I think it's fixable by defining an infix operator `e` This is a very interesting point, and this (i.e., the fact that `e` can be an operator, and...
Please start from this overview page: http://www.complang.tuwien.ac.at/ulrich/iso-prolog/ It links to several related pages, notably: **http://www.complang.tuwien.ac.at/ulrich/iso-prolog/variable_names**
This is tough: It's a real mistake in the engine, appearing in a test that uses the combination of quite a few different and quite elementary language constructs to elicit...
I found another way to write the example that seems to yield the expected result: It works if I avoid the aliased variable `B` which occurs twice in the clause...
The following program `basic.pl` suffices to exhibit the issue: :- op(1200, xfx, :+). i(a, b). cycle([A, B, A]) :- i(A, B). true :+ cycle(_). Yielding: $ scryer-prolog -g main eyelet.pl...
@josd: Please see the small fragment above that still exhibits the issue. Does it help to trace it down further?
I have shortened everything to the following interaction which I think shows the essence of the issue: $ scryer-prolog ?- L = [A,A], A = a, assertz(l(L)). L = "aa",...
Indeed this shows something interesting: ?- l([A,B,C]). A = a, B = C. namely that the last two elements (`B` and `C`) are correctly aliased, but their relation with `A`...