Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.prolog > #14149

Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1)

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.prolog
Subject Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1)
Date 2024-08-11 00:02 +0200
Message-ID <v98o1s$12aq2$1@solani.org> (permalink)
References <v8bc1u$indc$1@solani.org> <v98b1p$123qt$1@solani.org> <v98bpp$124d0$1@solani.org>

Show all headers | View raw


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?

Mild Shock schrieb:
> Hi,
> 
> I recently introduce '$VAR'/1 detection in
> writing again. I have now a 100% Prolog written
> '$VAR'/1 capable output routine.
> 
> Somehow I found '$VAR'/1 usueful again, especially
> in connection with numbersvars/3 which is in
> library(compat) the two make a nice pair
> 
> of Swiss army knife for printing. What the
> routines don't do, they for example don't check
> variable_names/1 option for a cyclic list, so
> 
> I currently get:
> 
> /* Dogelog Player */
> ?- VN = ['U'=X,'V'=Y | VN], write_term(f(X,g(Y,X),Y), 
> [variable_names(VN)]), nl.
> %%% hangs or I wasn't wainting long enough
> 
> But then SWI-Prolog does something strange,
> but the error message is funny:
> 
> ?- VN = ['U'=X,'V'=Y | VN], write_term(f(X,g(Y,X),Y), 
> [variable_names(VN)]), nl.
> ERROR: Type error: `list' expected, found `'V'=V' (a compound)
> 
> Does the error message use the variable_names/1
> association list that is in prepaperation somehow,
> as a unintended side effect? Or what explains that
> 
> it shows 'V'=V' and not 'V'=Y'? And why does it
> complain about compound? And not say something about cyclic?
> This here works correctly:
> 
> ?- VN = ['U'=X,'V'=Y], write_term(f(X,g(Y,X),Y),
>     [variable_names(VN)]), nl.
> f(U,g(V,U),V)
> 
> Mild Shock schrieb:
>>
>> UWN is testing Prolog systems that don't exist anymore:
>>
>> Jekejeke 1.5.0
>> https://www.complang.tuwien.ac.at/ulrich/iso-prolog/variable_names#73
>>
>> a) There is no more publicitly available Jekejeke
>>     Prolog anymore, I think I wrote UWN already in the
>>     past about that.
>>
>> b) There is only Dogelog Player, which has a 100%
>>     Prolog written read/write predicates including
>>     the variable_name/1 option. Source code is here,
>>     you also find GIT access etc to the Prolog system:
>>
>> Quelltexte und Archive des Dogelog Spieler.
>> https://www.xlog.ch/izytab/doclet/docs/07_spec/02_dogelog.html
>>
>> c) There is an internal version of Jekejeke Prolog,
>>     which is way after 1.5.0, with version 1.7.0, but
>>     it also uses the Dogelog Payer 100% Prolog
>>     written read/write, so no need to test.
>>
>>
>> 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'
>>
> 

Back to comp.lang.prolog | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

DCG restrictions on the left-hand side [Novacore] Mild Shock <janburse@fastmail.fm> - 2024-07-30 20:39 +0200
  Re: DCG restrictions on the left-hand side [Novacore] Mild Shock <janburse@fastmail.fm> - 2024-07-30 20:43 +0200
    Re: DCG restrictions on the left-hand side [Novacore] Mild Shock <janburse@fastmail.fm> - 2024-07-30 20:45 +0200
      Re: DCG restrictions on the left-hand side [Novacore] Mild Shock <janburse@fastmail.fm> - 2024-07-31 07:55 +0200
        Re: DCG restrictions on the left-hand side [Novacore] Mild Shock <janburse@fastmail.fm> - 2024-07-31 08:07 +0200
  post-N246 Read- and Write-Option variable_names/1 (Was: DCG restrictions on the left-hand side [Novacore]) Mild Shock <janburse@fastmail.fm> - 2024-08-10 20:20 +0200
    Re: post-N246 Read- and Write-Option variable_names/1 (Was: DCG restrictions on the left-hand side [Novacore]) Mild Shock <janburse@fastmail.fm> - 2024-08-10 20:33 +0200
      Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1) Mild Shock <janburse@fastmail.fm> - 2024-08-11 00:02 +0200
        Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1) Mild Shock <janburse@fastmail.fm> - 2024-08-11 00:05 +0200
          Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1) Mild Shock <janburse@fastmail.fm> - 2024-08-11 00:16 +0200
            Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1) Mild Shock <janburse@fastmail.fm> - 2024-08-11 00:25 +0200
              Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and Write-Option variable_names/1) Mild Shock <janburse@fastmail.fm> - 2024-08-11 14:46 +0200
  A PIP classification scheme is needed (Was: DCG restrictions on the left-hand side [Novacore]) Mild Shock <janburse@fastmail.fm> - 2024-08-13 11:18 +0200
    Re: A PIP classification scheme is needed (Was: DCG restrictions on the left-hand side [Novacore]) Mild Shock <janburse@fastmail.fm> - 2024-08-13 11:23 +0200
      Re: A PIP classification scheme is needed (Was: DCG restrictions on the left-hand side [Novacore]) Mild Shock <janburse@fastmail.fm> - 2024-08-13 13:08 +0200

csiph-web