Path: ...!eternal-september.org!feeder3.eternal-september.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: Mild Shock Newsgroups: comp.lang.prolog Subject: Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1) Date: Sun, 11 Aug 2024 00:05:15 +0200 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sat, 10 Aug 2024 22:05:13 -0000 (UTC) Injection-Info: solani.org; logging-data="1125186"; 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:UmYzIZgCk+1TvXmIYVadLtLJlf8= In-Reply-To: X-User-ID: eJwNyskBwCAIBMCWRNxFyuGQ/ktI5j1QCssOwYPBTOyOBY2ghOZOn/KlzCq9A2oA17pM+Pf3evd1U4/EEW/7AGpgFcs= Bytes: 2671 Lines: 47 Anything that touches or depends on syntax is a complete can of worms. The ISO commitee was not able to find an initial *english natural language specification wording* for character look-ahead, so that we find now character look-ahead in Prolog compounds practially implemented by all Prolog systems, but character look-ahead interpretation may differ for negative numbers, like here: /* SWI-Prolog */ ?- X = - 1^2, write_canonical(X), nl. -(^(1,2)) /* Scryer Prolog */ ?- X = - 1^2, write_canonical(X), nl. ^(-1,2) But in the case of Scryer Prolog it doesn't matter, since Scryer Prolog is anyway dead. Mild Shock schrieb: > I have a question, does SWI-Prolog not anymore use > their dict syntax in the Janus interface: > > > import janus_swi as janus > > janus.query_once("Y is X+1", {"X":1}) > {'Y': 2, 'truth': True} > > I don’t see _{...} anymore. When and how did this > happen? I was just thinking whether a Syntax > extension PIP is necessary. Such a PIP isn’t listed: > > https://prolog-lang.org/ImplementersForum/PIPs.html > > Is SWI-Prolog safe, against parsing problems, > when it still has block operators in the > background? Like can one mix and match > > code that uses Janus interface with the > “new” dicts with other code that uses the > SWI-Prolog dicts based on _{...} > > which we might now term the “old” dicts. > How do you access and manipulate the > “new” dicts, do the “old” operations work?