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

Liste des GroupesRevenir à l 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, 08:07:22
Autres entêtes
Message-ID : <v8ckap$j8t4$1@solani.org>
References : 1 2 3 4
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0 SeaMonkey/2.53.18.2
I think its worth adopting this behaviour:
/* Scryer Prolog */
?- a-->b.
    error(existence_error(procedure,(-->)/2),(-->)/2).
?- assertz((a-->b)).
    error(permission_error(modify,static_procedure,(-->)/2),assertz/1).
?- a-->b.
    error(existence_error(procedure,(-->)/2),(-->)/2).
Mild Shock schrieb:
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