Re: DCG restrictions on the left-hand side [Novacore]

Liste des GroupesRevenir à cl prolog 
Sujet : Re: DCG restrictions on the left-hand side [Novacore]
De : janburse (at) *nospam* fastmail.fm (Mild Shock)
Groupes : comp.lang.prolog
Date : 31. Jul 2024, 07:55:14
Autres entêtes
Message-ID : <v8cjk1$j8js$1@solani.org>
References : 1 2 3
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0 SeaMonkey/2.53.18.2
Although SWI-Prolog implements a lot of checks.
It still allows this one:
?- a-->b.
ERROR: Unknown procedure: (-->)/2
?- assertz((a-->b)).
true.
?- a-->b.
true.
Scryer Prolog managed to prevent this, in that
the assertz/1 throws an error.
Think will finally adopt this behaviour to
prevent the end-user from accidentially
fiddling with (-->)/2.
Mild Shock schrieb:
 This was discussed here:
 Definite Clause Grammars Harmonization Proposal
Last edit jschimpf? October 20, 2016, at 12:42 AM
https://eclipseclp.org/wiki/Prolog/DCG
 Not sure why Scryer Prolog doesn't implement it.
 Mild Shock schrieb:
>
In Novacore we are lucky, its a side effect of
phrase translating the head and a multi-file check:
>
?- [user].
p;q --> r.
Fehler: Kann Prädikat ;/2 nicht umdefinieren, nicht als Mehrdateien markiert.
>
But might work out differently if a DCG is expanded
and asserted. Ok, its actually not so bad:
>
?- expand_term((p;q --> r), X), assertz(X).
Fehler: Kann Prädikat ;/2 nicht aktualisieren.
     user auf 1
>
>
Mild Shock schrieb:
Guess how many newer Prolog systems allow this here:
>
?- [user].
p;q --> r.
    true.
>
On the other hand SWI-Prolog disallows it:
>
?- [user].
p;q --> r.
>
ERROR: user://1:29:
ERROR:    No permission to define dcg_nonterminal `p;q'
>
 

Date Sujet#  Auteur
30 Jul 24 * DCG restrictions on the left-hand side [Novacore]15Mild Shock
30 Jul 24 +* Re: DCG restrictions on the left-hand side [Novacore]4Mild Shock
30 Jul 24 i`* Re: DCG restrictions on the left-hand side [Novacore]3Mild Shock
31 Jul 24 i `* Re: DCG restrictions on the left-hand side [Novacore]2Mild Shock
31 Jul 24 i  `- Re: DCG restrictions on the left-hand side [Novacore]1Mild Shock
10 Aug 24 +* post-N246 Read- and Write-Option variable_names/1 (Was: DCG restrictions on the left-hand side [Novacore])7Mild Shock
10 Aug 24 i`* Re: post-N246 Read- and Write-Option variable_names/1 (Was: DCG restrictions on the left-hand side [Novacore])6Mild Shock
11 Aug 24 i `* Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1)5Mild Shock
11 Aug 24 i  `* Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1)4Mild Shock
11 Aug 24 i   `* Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1)3Mild Shock
11 Aug 24 i    `* Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1)2Mild Shock
11 Aug 24 i     `- Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1)1Mild Shock
13 Aug 24 `* A PIP classification scheme is needed (Was: DCG restrictions on the left-hand side [Novacore])3Mild Shock
13 Aug 24  `* Re: A PIP classification scheme is needed (Was: DCG restrictions on the left-hand side [Novacore])2Mild Shock
13 Aug 24   `- Re: A PIP classification scheme is needed (Was: DCG restrictions on the left-hand side [Novacore])1Mild Shock

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal