Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <vb26sc$217u3$1@solani.org>
Deutsch   English   Français   Italiano  
<vb26sc$217u3$1@solani.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.mixmin.net!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: Mild Shock <janburse@fastmail.fm>
Newsgroups: comp.lang.prolog
Subject: Re: Why cant Scryer Prolog parse this? (Was: France is the Fire
 Nation of Prolog)
Date: Sun, 1 Sep 2024 19:05:15 +0200
Message-ID: <vb26sc$217u3$1@solani.org>
References: <d1ab4350-9a9d-49bc-845b-f10eeb1ec763n@googlegroups.com>
 <98f3fd5e-aee6-4a87-9f12-0df4a12e061dn@googlegroups.com>
 <758bac6e-fa0e-442d-afdc-bf7b0ea3f476n@googlegroups.com>
 <29a8df8b-5a26-436d-a1fc-d99d395e6cd5n@googlegroups.com>
 <51469f92-69a9-4e04-ba5b-87736f34f8fan@googlegroups.com>
 <976f92b0-f39d-4a99-bae6-312a99509479n@googlegroups.com>
 <d6ab1aae-6640-45de-ab5a-5f2de73e375dn@googlegroups.com>
 <cfc165ef-ab90-4711-bf38-9d607aa20eb3n@googlegroups.com>
 <c9d95bdf-dc0f-4ceb-a7fc-5fd47076f60dn@googlegroups.com>
 <a6d89f13-8625-41c3-9616-7505ff53858fn@googlegroups.com>
 <c92df7b5-9774-4932-b4ec-e9dd6e069f7en@googlegroups.com>
 <d4792eef-4f30-4fc8-811d-2d3c43e808b8n@googlegroups.com>
 <367479d2-55fa-4d09-a335-452ebc12be53n@googlegroups.com>
 <0dd031b7-b544-4834-8c4f-c05cdb73f108n@googlegroups.com>
 <2819e103-ad9e-4b92-8e20-52a3af80ad60n@googlegroups.com>
 <vb1pqc$1vjlv$1@solani.org> <vb1s74$1vl7v$1@solani.org>
 <vb1tno$21359$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 1 Sep 2024 17:05:16 -0000 (UTC)
Injection-Info: solani.org;
	logging-data="2138051"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Firefox/91.0 SeaMonkey/2.53.18.2
Cancel-Lock: sha1:R8Jxl8uktN7X7A6Wh+1OdC0ch9k=
X-User-ID: eJwNyMkBwDAIA7CVCsaQjFOu/Udo9RTh4hXmdONyQxYzYbfucDOkWqfLy3HP0w+5OOyy46b2/iWKQhIpoTkfXOcVaQ==
In-Reply-To: <vb1tno$21359$1@solani.org>
Bytes: 5716
Lines: 148

Interstingly SICStus Prolog, which is the sequel
to Quintus, does not impose the same restriction
as Scryer Prolog:

/* SICStus 4.9.0 */
| ?- current_op(X, Y, *).
X = 400,
Y = yfx ? ;
no

| ?- X = (* = *).
X = ((*)=(*)) ?
yes

So what went wrong in the ISO standard. There are so
many idiosyncratic things in the ISO standard, that
are only found in GNU Prolog. So they took GNU Prolog

as the template for the language syntax and ignored
all other Prolog systems? Its not 100% true. SICStus
Prolog has also some idiosyncratic things like:

/* SICStus 4.9.0 */
| ?- X = (- 1), write_canonical(X), nl.
-1
X = -1 ?

| ?- X = (-1), write_canonical(X), nl.
-1
X = -1 ?

Compare to SWI-Prolog:

/* SWI-Prolog 9.3.8 */
?- X = (- 1), write_canonical(X), nl.
-(1)
X = - 1.

?- X = (-1), write_canonical(X), nl.
-1
X = -1.

I like the SWI-Prolog behaviour better...

Mild Shock schrieb:
> Ok, my bad, prefix (table) is probably
> not the best example. This example works better:
> 
> scryer-prolog$ target/release/scryer-prolog
> ?- X = (#\/ = #\/).
>     X = (#\/ = #\/).
> ?- use_module(library(clpz)).
>     true.
> ?- X = (#\/ = #\/).
>     error(syntax_error(incomplete_reduction),read_term/3:1).
> 
> versus:
> 
> trealla$ ./tpl
> ?- X = (#\/ = #\/).
>     X = (#\/ = #\/) .
> ?- use_module(library(clpz)).
>     true.
> ?- X = (#\/ = #\/).
>     X = ((#\/)=(#\/)).
> 
> Mild Shock schrieb:
>> Tau Prolog can do it:
>>
>> https://github.com/tau-prolog/tau-prolog/issues/286
>>
>> But Tau Prolog is dead now, or hibernating for
>> more than 12 months already. So the more lenient
>> behaviour has already been ossified in this Prolog system.
>>
>> Another argument not in favor, it also makes parsing
>> more non-monotonic, if you introduce the "shall" condition,
>> because its a negative parsing condition.
>> ```
>> $ target/release/scryer-prolog
>> ?- X = (table = table).
>>     X = (table=table).
>>
>> ?- use_module(library(tabling)).
>>     true.
>>
>> ?- X = (table = table).
>>     error(syntax_error(incomplete_reduction),read_term/3:1).
>> ```
>> Maybe introducing more than rather less operator table
>> dependencies in a grammar is always a mistake? A further
>> use case is (!)/1 in TPTP syntax.
>>
>> Mild Shock schrieb:
>>> Hi,
>>>
>>> Why cant Scryer Prolog parse this?
>>>
>>> scryer-prolog$ target/release/scryer-prolog -v
>>> v0.9.4-165-g12a61cdf
>>>
>>> scryer-prolog$ target/release/scryer-prolog
>>>
>>> ?- current_op(X, Y, *).
>>>     X = 400, Y = yfx.
>>>
>>> ?- X = (* = *).
>>>     error(syntax_error(incomplete_reduction),read_term/3:1).
>>>
>>> On the other hand Trealla Prolog has no problem:
>>>
>>> trealla$ ./tpl -v
>>> Trealla Prolog (c) Infradig 2020-2024, v2.55.31
>>>
>>> trealla$ ./tpl
>>> ?- current_op(X, Y, *).
>>>     X = 400, Y = yfx.
>>>
>>> ?- X = (* = *).
>>>     X = ((*)=(*)).
>>>
>>> What LEX / YACC did they use? Holy cow!
>>>
>>> Bye
>>>
>>> Mild Shock schrieb:
>>>> Is Canada also France? Seems I am not the only one who got
>>>> into struggle with Logtalk sooner or later. LoL
>>>>
>>>> How its started:
>>>> Ticket raised by me Aug 9, 2021 (when I was "ghost")
>>>> Feature request flag dialect, maybe version and version_data
>>>> https://github.com/mthom/scryer-prolog/issues/1017
>>>>
>>>> How its going:
>>>> Commit by pmoura last week
>>>> Delete Scryer Prolog support due to this system refusal to
>>>> support the de facto standard `version_data` flag
>>>> https://github.com/LogtalkDotOrg/logtalk3/commit/d93883c5a8b014af09bd0e11439eaff30e1c1a5c 
>>>>
>>>>
>>>> What happened?
>>>>
>>>> LoL
>>>>
>>>
>>
>