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 >>>> >>> >> >