Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

Make it right before you make it faster.


devel / comp.lang.prolog / Re: 50 Years of Prolog Nonsense

SubjectAuthor
* 50 Years of Prolog NonsenseMostowski Collapse
+* Re: 50 Years of Prolog NonsenseMostowski Collapse
|`* Re: 50 Years of Prolog NonsenseMostowski Collapse
| `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|  `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|   `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|    `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     +* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |`* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     | `- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|      `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|       `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|        `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|         `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|          `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|           `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|            `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|             `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|              `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|               `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|                +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|                 `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|                  `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|                   `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|                    +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                    +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                    +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                    +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                    +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                    +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                    +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                    +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                    +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                    +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|                    `- Re: 50 Years of Prolog NonsenseMostowski Collapse
+* Re: 50 Years of Prolog NonsenseMostowski Collapse
|`* Re: 50 Years of Prolog NonsenseMostowski Collapse
| `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|  `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|   `- Re: 50 Years of Prolog NonsenseMostowski Collapse
+* Re: 50 Years of Prolog NonsenseMostowski Collapse
|`* Re: 50 Years of Prolog NonsenseMostowski Collapse
| `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|  `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|   `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|    `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     +* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |`* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     | `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |  +* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |  |`* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |  | `- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |  `* Re: 50 Years of Prolog NonsenseMarkus Triska
|     |   `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |    `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |     `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |      `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |       `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |        `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |         `* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +* Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          |`* Re: 50 Years of Prolog NonsenseMarkus Triska
|     |          | `* Re: 50 Years of Prolog NonsenseMild Shock
|     |          |  `* Re: 50 Years of Prolog NonsenseMild Shock
|     |          |   `- Re: 50 Years of Prolog NonsenseMild Shock
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          +- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     |          `- Re: 50 Years of Prolog NonsenseMostowski Collapse
|     `* Re: 50 Years of Prolog NonsenseMostowski Collapse
+* Re: 50 Years of Prolog NonsenseMostowski Collapse
+* Re: 50 Years of Prolog NonsenseMostowski Collapse
+* Re: 50 Years of Prolog NonsenseMostowski Collapse
+* Re: 50 Years of Prolog NonsenseMostowski Collapse
`* Re: 50 Years of Prolog NonsenseMild Shock

Pages:1234567
Re: 50 Years of Prolog Nonsense

<61050619-2ca0-429e-8f22-89acef6d4291n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1486&group=comp.lang.prolog#1486

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:620a:31a2:b0:6a0:1d82:8907 with SMTP id bi34-20020a05620a31a200b006a01d828907mr4424209qkb.408.1651748879986;
Thu, 05 May 2022 04:07:59 -0700 (PDT)
X-Received: by 2002:a81:bd4:0:b0:2eb:994d:ace7 with SMTP id
203-20020a810bd4000000b002eb994dace7mr23009425ywl.514.1651748879704; Thu, 05
May 2022 04:07:59 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 5 May 2022 04:07:59 -0700 (PDT)
In-Reply-To: <471753a7-18f6-4474-8e42-ebe58ccf2508n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<cb4d0cda-50b3-4ad7-9af3-240a3582a064n@googlegroups.com> <1d869c34-e4eb-4e93-898e-0b01f3ffb09dn@googlegroups.com>
<cd6b0691-c25c-4867-917b-7d48340b2798n@googlegroups.com> <fd44ed01-3f23-48ad-9035-ca3a02720ea0n@googlegroups.com>
<6751a872-9893-4bb4-9fdf-f7491d1ba826n@googlegroups.com> <627b1680-c118-4df7-bf0e-f7b1fb885e51n@googlegroups.com>
<35a3e608-d22c-4606-9617-25681e7aec08n@googlegroups.com> <26c9dce5-cd9d-4ee9-a6d1-f02c5ebeb84bn@googlegroups.com>
<24fc2a11-ba45-4e95-8e00-9f9d030a9f2cn@googlegroups.com> <1634fa1b-bb79-41a2-b3ea-78704adb3bc9n@googlegroups.com>
<1e65b2ec-c913-47cc-8f48-c2d75ca8ebffn@googlegroups.com> <46f1a6ed-b7cf-46ef-b743-385f73ee8bc8n@googlegroups.com>
<4cf6cb3d-4215-4ac9-a4f7-c1be67849b55n@googlegroups.com> <a8f57e18-c3cf-4e3f-b589-29401db904d6n@googlegroups.com>
<41aa8728-09e9-4823-b4b7-ad57c86d1678n@googlegroups.com> <t4gi2o$1j1id$1@solani.org>
<t4gim2$1j1ud$1@solani.org> <cdea6c44-18a5-4650-9675-e0295ea5d275n@googlegroups.com>
<bb6eede9-fdae-4063-b4b9-e860144ea327n@googlegroups.com> <3868d7f0-f51d-4027-ab8b-67d708ad5e0cn@googlegroups.com>
<10b2b4a6-e6f4-4411-89b6-dabc2249dd16n@googlegroups.com> <5914ba3d-8f72-423a-97b7-5e4b4984049fn@googlegroups.com>
<b1e59236-579f-40c3-9159-573646e82e37n@googlegroups.com> <cfb88999-a945-4461-bd21-81b5e0f5207en@googlegroups.com>
<1f943192-f670-422a-834e-ec9369783527n@googlegroups.com> <4f6657ca-e14f-4528-aa1b-5c11683d5166n@googlegroups.com>
<232923ff-f599-4595-80e9-2e26eccdaa44n@googlegroups.com> <471753a7-18f6-4474-8e42-ebe58ccf2508n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <61050619-2ca0-429e-8f22-89acef6d4291n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Thu, 05 May 2022 11:07:59 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 64
 by: Mostowski Collapse - Thu, 5 May 2022 11:07 UTC

Ok, the aspiring academic Prolog idiot might want
to know more. But from PEG context it should be clear,

that this is the declarative reading for parsing, i.e.
mode p(+,-). Not sure whether it is suitable for other

modes. Didn't use it in other modes...

P.S.: Maybe if you look long enough out of a window,
you might see a pink Unicorn fly by, its the same

with bidirectional DCG grammars....

Mostowski Collapse schrieb am Donnerstag, 5. Mai 2022 um 12:56:04 UTC+2:
> The declarative reading is relatively trivial.
> Take this example from above:
>
> p(A, B) :-
> \+ q(A, _),
> A = C,
> r(C, B).
>
> The declarative reading is as follows:
>
> p(A, B) ←
> ¬ ∃D q(A, D) ∧
> A = C ∧
> r(C, B).
>
> Its not really rocket science. But because its negation
> as failure you might also need Clark Completion etc..
> Mostowski Collapse schrieb am Donnerstag, 5. Mai 2022 um 12:19:59 UTC+2:
> > Looks like UWN is confusing GitHub with Facebook, with his up votes.
> > And sometimes UWN thinks its YouTube, with his down votes?
> > Mostowski Collapse schrieb am Donnerstag, 5. Mai 2022 um 12:08:16 UTC+2:
> > > Its also nicely explained:
> > >
> > > The not-predicate expression !e succeeds if e fails and fails if e
> > > succeeds, again consuming no input in either case.
> > > Mostowski Collapse schrieb am Donnerstag, 5. Mai 2022 um 12:04:07 UTC+2:
> > > > When it is 2022, but you are still living in 2013:
> > > > https://stackoverflow.com/questions/12758567/legitimate-uses-of-1
> > > >
> > > > The question has two former answers from me. Stackoverflow didn't
> > > > allow me to delete them. Nobody else has answered, and you are
> > > > asking the wrong question.
> > > >
> > > > I find that ECLiPSe Prolog, SWI-Prolog, GNU Prolog and SICStus
> > > > Prolog support it. They all are able to support (\+)/1 inside DCG.
> > > > You can also add Tau-Prolog to the list and a couple
> > > >
> > > > of more Prolog systems. The (\+)/1 is nowadays part of PEG.
> > > >
> > > > parsing expression grammar (PEG)
> > > > Not-predicate: !e
> > > > https://en.wikipedia.org/wiki/Parsing_expression_grammar
> > > >
> > > > It has million of uses, they are all legitimate.

Re: 50 Years of Prolog Nonsense

<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1539&group=comp.lang.prolog#1539

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ac8:5b96:0:b0:2f8:af64:a0bd with SMTP id a22-20020ac85b96000000b002f8af64a0bdmr4657203qta.463.1654196616017;
Thu, 02 Jun 2022 12:03:36 -0700 (PDT)
X-Received: by 2002:a0d:ca08:0:b0:30c:b11b:8cfc with SMTP id
m8-20020a0dca08000000b0030cb11b8cfcmr7462520ywd.362.1654196615866; Thu, 02
Jun 2022 12:03:35 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 2 Jun 2022 12:03:35 -0700 (PDT)
In-Reply-To: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Thu, 02 Jun 2022 19:03:36 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Mostowski Collapse - Thu, 2 Jun 2022 19:03 UTC

Look Ma, a FOL resolution theorem prover in Prolog:
See also: http://logic.stanford.edu/intrologic/chapters/chapter_14.html

many([], S, S).
many([C|T], S, R) :- next(C, T, S, R).

next(C, T, S, R) :- member(D, S), weaker(D, C), !, many(T, S, R).
next(C, T, S, R) :- filter(S, C, K), apply(C, K, H),
append(T, H, J), many(J, [C|K], R).

apply(C, S, T) :-
findall(E, (member(D, S), resolvent(C, D, E)), T).

resolvent(C, D, E) :-
select(A, C, H), factor(A, H, C2),
select(B, D, J), factor(B, J, D2),
opposite(A, B),
append(C2, D2, E).

opposite(pos(A), neg(A)).
opposite(neg(A), pos(A)).

factor(_, C, C).
factor(A, C, C2) :- select(A, C, H), factor(A, H, C2).

filter([], _, []).
filter([D|L], C, R) :- weaker(C, D), !, filter(L, C, R).
filter([D|L], C, [D|R]) :- filter(L, C, R).

weaker(C, D) :- \+ \+ (numbervars(D, 0, _), subset(C, D)).

subset([], _).
subset([X|L], R) :- member(X, R), subset(L, R).

% ?- many([[pos(p(X)),pos(p(Y))],[neg(p(U)),neg(p(V))]],[],S).
% S = [[]].

Re: 50 Years of Prolog Nonsense

<b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1540&group=comp.lang.prolog#1540

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:620a:2807:b0:6a6:6ef1:fb9d with SMTP id f7-20020a05620a280700b006a66ef1fb9dmr6094196qkp.146.1654249459240;
Fri, 03 Jun 2022 02:44:19 -0700 (PDT)
X-Received: by 2002:a25:680e:0:b0:65c:bc72:94f4 with SMTP id
d14-20020a25680e000000b0065cbc7294f4mr9662670ybc.251.1654249459052; Fri, 03
Jun 2022 02:44:19 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Fri, 3 Jun 2022 02:44:18 -0700 (PDT)
In-Reply-To: <c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com> <c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Fri, 03 Jun 2022 09:44:19 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Mostowski Collapse - Fri, 3 Jun 2022 09:44 UTC

Ok, forgot about the occurs check.

This should also have either:
:- set_prolog_flag(occurs_check, true)

Or then sprinkled with calls to:
unify_occurs_check(_,_)

When variables occur non-linearly in a clause.

Mostowski Collapse schrieb am Donnerstag, 2. Juni 2022 um 21:03:37 UTC+2:
> Look Ma, a FOL resolution theorem prover in Prolog:
> See also: http://logic.stanford.edu/intrologic/chapters/chapter_14.html
>
> many([], S, S).
> many([C|T], S, R) :- next(C, T, S, R).
>
> next(C, T, S, R) :- member(D, S), weaker(D, C), !, many(T, S, R).
> next(C, T, S, R) :- filter(S, C, K), apply(C, K, H),
> append(T, H, J), many(J, [C|K], R).
>
> apply(C, S, T) :-
> findall(E, (member(D, S), resolvent(C, D, E)), T).
>
> resolvent(C, D, E) :-
> select(A, C, H), factor(A, H, C2),
> select(B, D, J), factor(B, J, D2),
> opposite(A, B),
> append(C2, D2, E).
>
> opposite(pos(A), neg(A)).
> opposite(neg(A), pos(A)).
>
> factor(_, C, C).
> factor(A, C, C2) :- select(A, C, H), factor(A, H, C2).
>
> filter([], _, []).
> filter([D|L], C, R) :- weaker(C, D), !, filter(L, C, R).
> filter([D|L], C, [D|R]) :- filter(L, C, R).
>
> weaker(C, D) :- \+ \+ (numbervars(D, 0, _), subset(C, D)).
>
> subset([], _).
> subset([X|L], R) :- member(X, R), subset(L, R).
>
> % ?- many([[pos(p(X)),pos(p(Y))],[neg(p(U)),neg(p(V))]],[],S).
> % S = [[]].

Re: 50 Years of Prolog Nonsense

<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1541&group=comp.lang.prolog#1541

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:6214:19c9:b0:464:6a91:2ec5 with SMTP id j9-20020a05621419c900b004646a912ec5mr10734338qvc.39.1654249766104;
Fri, 03 Jun 2022 02:49:26 -0700 (PDT)
X-Received: by 2002:a81:7b43:0:b0:2ec:8bb:3aef with SMTP id
w64-20020a817b43000000b002ec08bb3aefmr10595863ywc.267.1654249765885; Fri, 03
Jun 2022 02:49:25 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!npeer.as286.net!npeer-ng0.as286.net!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Fri, 3 Jun 2022 02:49:25 -0700 (PDT)
In-Reply-To: <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Fri, 03 Jun 2022 09:49:26 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 2951
 by: Mostowski Collapse - Fri, 3 Jun 2022 09:49 UTC

Corr.::

unify_with_occurs_check(_,_)

Mostowski Collapse schrieb am Freitag, 3. Juni 2022 um 11:44:20 UTC+2:
> Ok, forgot about the occurs check.
>
> This should also have either:
> :- set_prolog_flag(occurs_check, true)
>
> Or then sprinkled with calls to:
> unify_occurs_check(_,_)
>
> When variables occur non-linearly in a clause.
> Mostowski Collapse schrieb am Donnerstag, 2. Juni 2022 um 21:03:37 UTC+2:
> > Look Ma, a FOL resolution theorem prover in Prolog:
> > See also: http://logic.stanford.edu/intrologic/chapters/chapter_14.html
> >
> > many([], S, S).
> > many([C|T], S, R) :- next(C, T, S, R).
> >
> > next(C, T, S, R) :- member(D, S), weaker(D, C), !, many(T, S, R).
> > next(C, T, S, R) :- filter(S, C, K), apply(C, K, H),
> > append(T, H, J), many(J, [C|K], R).
> >
> > apply(C, S, T) :-
> > findall(E, (member(D, S), resolvent(C, D, E)), T).
> >
> > resolvent(C, D, E) :-
> > select(A, C, H), factor(A, H, C2),
> > select(B, D, J), factor(B, J, D2),
> > opposite(A, B),
> > append(C2, D2, E).
> >
> > opposite(pos(A), neg(A)).
> > opposite(neg(A), pos(A)).
> >
> > factor(_, C, C).
> > factor(A, C, C2) :- select(A, C, H), factor(A, H, C2).
> >
> > filter([], _, []).
> > filter([D|L], C, R) :- weaker(C, D), !, filter(L, C, R).
> > filter([D|L], C, [D|R]) :- filter(L, C, R).
> >
> > weaker(C, D) :- \+ \+ (numbervars(D, 0, _), subset(C, D)).
> >
> > subset([], _).
> > subset([X|L], R) :- member(X, R), subset(L, R).
> >
> > % ?- many([[pos(p(X)),pos(p(Y))],[neg(p(U)),neg(p(V))]],[],S).
> > % S = [[]].

Re: 50 Years of Prolog Nonsense

<5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1542&group=comp.lang.prolog#1542

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ac8:75c5:0:b0:304:b7a2:b304 with SMTP id z5-20020ac875c5000000b00304b7a2b304mr6653979qtq.191.1654251077956;
Fri, 03 Jun 2022 03:11:17 -0700 (PDT)
X-Received: by 2002:a0d:ee47:0:b0:2ff:85e6:9e03 with SMTP id
x68-20020a0dee47000000b002ff85e69e03mr10485478ywe.172.1654251077757; Fri, 03
Jun 2022 03:11:17 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Fri, 3 Jun 2022 03:11:17 -0700 (PDT)
In-Reply-To: <f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Fri, 03 Jun 2022 10:11:17 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Mostowski Collapse - Fri, 3 Jun 2022 10:11 UTC

My resolution theorem prover is an attempt to fix a bug
with Markus Triskas resolution theorem prover:

Resolution Calculus for Propositional Logic
pl_resolvent( ... ) :-
select(Q, As0, As),
select(not(Q), Bs0, Bs),
append(As, Bs, Rs0),
https://www.metalevel.at/logic/plres.pl

Mentioned here:

Theorem Proving with Prolog
https://www.metalevel.at/prolog/theoremproving

But when one reads the fine print by Markus Triska, it says
for propositional logic. Not sure whether it works for first
order logic (FOL) as well? There is a FOL example {p(X), p(Y)}

and {~p(U), ~p(V)} which hints that a full flegded resolution
theorem prover needs also “factoring”. Making a resolution
theorem prover only complete when it implements

resolution step with factoring:

> Φ
> ψ
> -------------------------------
> ((Φ’-{φ})∪(Ψ’-{¬ψ}))σ
> where τ is a variable renaming on Φ
> where Φ’ is a factor of Φτ and φ∈Φ’
> where Ψ’ is a factor of Ψ and ¬ψ∈Ψ’
> where σ=mgu(φ, ψ)
> http://logic.stanford.edu/intrologic/chapters/chapter_14.html

Any full fledged resolution theorem provers around written in Prolog?

Mostowski Collapse schrieb am Freitag, 3. Juni 2022 um 11:49:27 UTC+2:
> Corr.::
>
> unify_with_occurs_check(_,_)
> Mostowski Collapse schrieb am Freitag, 3. Juni 2022 um 11:44:20 UTC+2:
> > Ok, forgot about the occurs check.
> >
> > This should also have either:
> > :- set_prolog_flag(occurs_check, true)
> >
> > Or then sprinkled with calls to:
> > unify_occurs_check(_,_)
> >
> > When variables occur non-linearly in a clause.
> > Mostowski Collapse schrieb am Donnerstag, 2. Juni 2022 um 21:03:37 UTC+2:
> > > Look Ma, a FOL resolution theorem prover in Prolog:
> > > See also: http://logic.stanford.edu/intrologic/chapters/chapter_14.html
> > >
> > > many([], S, S).
> > > many([C|T], S, R) :- next(C, T, S, R).
> > >
> > > next(C, T, S, R) :- member(D, S), weaker(D, C), !, many(T, S, R).
> > > next(C, T, S, R) :- filter(S, C, K), apply(C, K, H),
> > > append(T, H, J), many(J, [C|K], R).
> > >
> > > apply(C, S, T) :-
> > > findall(E, (member(D, S), resolvent(C, D, E)), T).
> > >
> > > resolvent(C, D, E) :-
> > > select(A, C, H), factor(A, H, C2),
> > > select(B, D, J), factor(B, J, D2),
> > > opposite(A, B),
> > > append(C2, D2, E).
> > >
> > > opposite(pos(A), neg(A)).
> > > opposite(neg(A), pos(A)).
> > >
> > > factor(_, C, C).
> > > factor(A, C, C2) :- select(A, C, H), factor(A, H, C2).
> > >
> > > filter([], _, []).
> > > filter([D|L], C, R) :- weaker(C, D), !, filter(L, C, R).
> > > filter([D|L], C, [D|R]) :- filter(L, C, R).
> > >
> > > weaker(C, D) :- \+ \+ (numbervars(D, 0, _), subset(C, D)).
> > >
> > > subset([], _).
> > > subset([X|L], R) :- member(X, R), subset(L, R).
> > >
> > > % ?- many([[pos(p(X)),pos(p(Y))],[neg(p(U)),neg(p(V))]],[],S).
> > > % S = [[]].

Re: 50 Years of Prolog Nonsense

<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1544&group=comp.lang.prolog#1544

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ad4:5d69:0:b0:466:1be0:88db with SMTP id fn9-20020ad45d69000000b004661be088dbmr35406687qvb.41.1654865646271;
Fri, 10 Jun 2022 05:54:06 -0700 (PDT)
X-Received: by 2002:a05:6902:1009:b0:663:988f:629 with SMTP id
w9-20020a056902100900b00663988f0629mr25094342ybt.424.1654865646122; Fri, 10
Jun 2022 05:54:06 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Fri, 10 Jun 2022 05:54:05 -0700 (PDT)
In-Reply-To: <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=194.230.148.163; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 194.230.148.163
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Fri, 10 Jun 2022 12:54:06 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1483
 by: Mostowski Collapse - Fri, 10 Jun 2022 12:54 UTC

Its 2022 and Prolog is among the top 20

TIOBE Index for June 2022
https://www.tiobe.com/tiobe-index/

Woa!

Re: 50 Years of Prolog Nonsense

<1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1554&group=comp.lang.prolog#1554

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:adf:ec4f:0:b0:21b:90c0:139e with SMTP id w15-20020adfec4f000000b0021b90c0139emr3081076wrn.550.1656149980437;
Sat, 25 Jun 2022 02:39:40 -0700 (PDT)
X-Received: by 2002:a5b:a4f:0:b0:669:9661:55e4 with SMTP id
z15-20020a5b0a4f000000b00669966155e4mr3564802ybq.466.1656149979612; Sat, 25
Jun 2022 02:39:39 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!pasdenom.info!usenet-fr.net!fdn.fr!proxad.net!feeder1-2.proxad.net!209.85.128.87.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Sat, 25 Jun 2022 02:39:39 -0700 (PDT)
In-Reply-To: <d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Sat, 25 Jun 2022 09:39:40 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Mostowski Collapse - Sat, 25 Jun 2022 09:39 UTC

What would make sense, is a ISO core standard working
group, that would draft these stream creation properties:

- bom(Bool)
Specify detecting or writing a BOM.
- encoding(Atom)
Specify a file encoding.

After all we have already 2022 and 50 years of Prolog. But
can we be sure that Prolog texts are exchangeable, if
they use Unicode code points?

What if a UTF-16 file, handy for CJK, comes along?

Mostowski Collapse schrieb am Freitag, 10. Juni 2022 um 14:54:07 UTC+2:
> Its 2022 and Prolog is among the top 20
>
> TIOBE Index for June 2022
> https://www.tiobe.com/tiobe-index/
>
> Woa!

Re: 50 Years of Prolog Nonsense

<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1555&group=comp.lang.prolog#1555

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:adf:fad2:0:b0:21b:b947:bfa8 with SMTP id a18-20020adffad2000000b0021bb947bfa8mr3164921wrs.73.1656150066266;
Sat, 25 Jun 2022 02:41:06 -0700 (PDT)
X-Received: by 2002:a25:230d:0:b0:66c:42b3:7e5 with SMTP id
j13-20020a25230d000000b0066c42b307e5mr3438099ybj.316.1656150065791; Sat, 25
Jun 2022 02:41:05 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.128.88.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Sat, 25 Jun 2022 02:41:05 -0700 (PDT)
In-Reply-To: <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Sat, 25 Jun 2022 09:41:06 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Mostowski Collapse - Sat, 25 Jun 2022 09:41 UTC

I feel I have not the according experience. Will redo this
stuff now for Dogelog Player after having it in formerly
Jekejeke Prolog and still discovering new corners. Maybe

can tell more in a few years. Also experience from formerly
Jekejeke Prolog are that things might look different for
UrlConnection, since the server might do the BOM detection

and the client doesn’t need. I guess SWI-Prolog has also
some experience here through http_open/3.

Mostowski Collapse schrieb am Samstag, 25. Juni 2022 um 11:39:42 UTC+2:
> What would make sense, is a ISO core standard working
> group, that would draft these stream creation properties:
>
> - bom(Bool)
> Specify detecting or writing a BOM.
> - encoding(Atom)
> Specify a file encoding.
>
> After all we have already 2022 and 50 years of Prolog. But
> can we be sure that Prolog texts are exchangeable, if
> they use Unicode code points?
>
> What if a UTF-16 file, handy for CJK, comes along?
> Mostowski Collapse schrieb am Freitag, 10. Juni 2022 um 14:54:07 UTC+2:
> > Its 2022 and Prolog is among the top 20
> >
> > TIOBE Index for June 2022
> > https://www.tiobe.com/tiobe-index/
> >
> > Woa!

Re: 50 Years of Prolog Nonsense

<3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1575&group=comp.lang.prolog#1575

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a0c:df11:0:b0:472:fff9:d9a8 with SMTP id g17-20020a0cdf11000000b00472fff9d9a8mr16297347qvl.61.1657611935334;
Tue, 12 Jul 2022 00:45:35 -0700 (PDT)
X-Received: by 2002:a81:98d:0:b0:31c:921c:9783 with SMTP id
135-20020a81098d000000b0031c921c9783mr23663364ywj.316.1657611935146; Tue, 12
Jul 2022 00:45:35 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Tue, 12 Jul 2022 00:45:34 -0700 (PDT)
In-Reply-To: <b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Tue, 12 Jul 2022 07:45:35 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 2918
 by: Mostowski Collapse - Tue, 12 Jul 2022 07:45 UTC

An ode to the most annoying people in Prolog:

Markus Triska, this wasn't my question. On the same grounds
you could remove (\+)/1 from Prolog. Doesn't make any sense
what you write since Prolog has dual use, pure and impure.

If you want to provide a fully pure language you have to
rename Scryer Prolog into something Scryer XXX, where
XXX is this language. And if your attempt is at a pure language

that is also aimed at bootstrapping the system itself, then
you have to demonstrate this for your XXX. But to the best of
my knowledge it is still called Scryer Prolog and not

Scryer XXX and I do not find a single paper about some XXX
that would be the basis for this utopian Scryer XXX from nowhere
land. Scryer Prolog rather refers repeatedly to WAM which supports

the cut and friends. What is your XXX exactly? Your bragging seems
rather moot and annoying nonsense in the context of Scryer Prolog
which is based on WAM. If this were a repository of another language

dedicated to this Scryer XXX, your comments would make sense.
But as they are now distributed all over the place, they rather
look like disorganized debris to me, that landed in the wrong place.

Maybe open a new repository for your Scryer XXX instead of
bothering people with your ever repeating nonsense, that is
anyway trivially evident for any Prologer who knows his cut?

Re: 50 Years of Prolog Nonsense

<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1576&group=comp.lang.prolog#1576

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:622a:4:b0:31d:2a64:3d1c with SMTP id x4-20020a05622a000400b0031d2a643d1cmr16608962qtw.43.1657613037285;
Tue, 12 Jul 2022 01:03:57 -0700 (PDT)
X-Received: by 2002:a25:5809:0:b0:66c:8709:3611 with SMTP id
m9-20020a255809000000b0066c87093611mr19605994ybb.608.1657613037114; Tue, 12
Jul 2022 01:03:57 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Tue, 12 Jul 2022 01:03:56 -0700 (PDT)
In-Reply-To: <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Tue, 12 Jul 2022 08:03:57 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4447
 by: Mostowski Collapse - Tue, 12 Jul 2022 08:03 UTC

Ignoring the users of a Prolog system was always a good strategy:

And? Whats your point exactly? The same happens here:

?- nonvar(X).
false.

?- X = a, nonvar(X).
X = a.

Do you also suggest to remove nonvar/1. nonvar/1 is part of the
ISO core standard. forall/2 can be found in this document:

New built-in flags, predicates, and functions proposal
8.10.4 forall/2
ISO/IEC DTR 13211-1:2006
https://www.complang.tuwien.ac.at/ulrich/iso-prolog/N208

Which had these people behind it, potential users of it:

Bart Demoen (Belgium)
Jan Wielemaker, (Netherlands)
Joachim Schimpf (UK)
Jonathan Hodgson (USA)
Katsuhiko Nakamura (Japan)
Klaus Daessler (Germany)
Mary Kroening (USA)
Michael Covington (USA)
Neng-Fu Zhou (USA)
Paulo Moura (Portugal)
Pierre Deransart (France)
Péter Szabó (Hungary)
Péter Szeredi (Hungary)
Rémy Haemmerlé (France)
Richard O'Keefe (NZ)
Roberto Bagnara (Italy)
Roger Scowen (UK)
Ulrich Neumerkel (Austria)

So its one, Markus Triska, against many. I am only
voicing what many expect anyway from a Prolog system.

Make a GitHub search, you find many places where it is used
by some Prolog programmer. Its kind of staple food.

Mostowski Collapse schrieb am Dienstag, 12. Juli 2022 um 09:45:36 UTC+2:
> An ode to the most annoying people in Prolog:
>
> Markus Triska, this wasn't my question. On the same grounds
> you could remove (\+)/1 from Prolog. Doesn't make any sense
> what you write since Prolog has dual use, pure and impure.
>
> If you want to provide a fully pure language you have to
> rename Scryer Prolog into something Scryer XXX, where
> XXX is this language. And if your attempt is at a pure language
>
> that is also aimed at bootstrapping the system itself, then
> you have to demonstrate this for your XXX. But to the best of
> my knowledge it is still called Scryer Prolog and not
>
> Scryer XXX and I do not find a single paper about some XXX
> that would be the basis for this utopian Scryer XXX from nowhere
> land. Scryer Prolog rather refers repeatedly to WAM which supports
>
> the cut and friends. What is your XXX exactly? Your bragging seems
> rather moot and annoying nonsense in the context of Scryer Prolog
> which is based on WAM. If this were a repository of another language
>
> dedicated to this Scryer XXX, your comments would make sense.
> But as they are now distributed all over the place, they rather
> look like disorganized debris to me, that landed in the wrong place.
>
> Maybe open a new repository for your Scryer XXX instead of
> bothering people with your ever repeating nonsense, that is
> anyway trivially evident for any Prologer who knows his cut?

Re: 50 Years of Prolog Nonsense

<8c4dec30-95d4-4673-ae6c-4ef5b2fecd83n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1577&group=comp.lang.prolog#1577

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:620a:462a:b0:6b2:585c:16a6 with SMTP id br42-20020a05620a462a00b006b2585c16a6mr14350413qkb.631.1657614501808;
Tue, 12 Jul 2022 01:28:21 -0700 (PDT)
X-Received: by 2002:a81:6988:0:b0:31c:bc55:80d1 with SMTP id
e130-20020a816988000000b0031cbc5580d1mr24037211ywc.431.1657614500888; Tue, 12
Jul 2022 01:28:20 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Tue, 12 Jul 2022 01:28:20 -0700 (PDT)
In-Reply-To: <a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8c4dec30-95d4-4673-ae6c-4ef5b2fecd83n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Tue, 12 Jul 2022 08:28:21 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 2793
 by: Mostowski Collapse - Tue, 12 Jul 2022 08:28 UTC

Here is a suggestion to stop this madness:

SWI-Prolog has an iso marker, which is seen in its
documentation. Scryer Prolog seems to have two
kinds of users. a) Ordinary Prolog users, and b)

Users that project some more Declarative Language into
Scryer Prolog, although Scryer Prolog is based on
WAM which is not designed for that. Maybe introduce

an impure marker so that we can identify the subset
of this upcoming more Declarative Language. This
could be more helpful than distracting GitHub issues

that adresse the ordinary needs of Prolog programmers
by posting trivialities that anyway any Prologer knows. Here
is my suggestion, predicates could be marked as follows:

','/2: no marker
(\+)/1: impure marker
nonvar/1: impure marker
Etc...

One could then generate an index with the pure predicates
that do not have the impure marker. Is there already a booklet
about this new extra ordinary language somewhere?

It would be interesting to see what language results by this index.
Is it possible to bootstrap a Prolog system with this language?
Does it contain some novel declarative predicates?

Re: 50 Years of Prolog Nonsense

<66835fe9-ef67-4fff-b7d9-502e6f075313n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1578&group=comp.lang.prolog#1578

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:620a:4807:b0:6b5:4db7:e0b9 with SMTP id eb7-20020a05620a480700b006b54db7e0b9mr13760311qkb.747.1657614539780;
Tue, 12 Jul 2022 01:28:59 -0700 (PDT)
X-Received: by 2002:a05:6902:1083:b0:66f:46a2:9da7 with SMTP id
v3-20020a056902108300b0066f46a29da7mr7616211ybu.175.1657614539558; Tue, 12
Jul 2022 01:28:59 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Tue, 12 Jul 2022 01:28:59 -0700 (PDT)
In-Reply-To: <8c4dec30-95d4-4673-ae6c-4ef5b2fecd83n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <8c4dec30-95d4-4673-ae6c-4ef5b2fecd83n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <66835fe9-ef67-4fff-b7d9-502e6f075313n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Tue, 12 Jul 2022 08:28:59 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4352
 by: Mostowski Collapse - Tue, 12 Jul 2022 08:28 UTC

Also the idea that Scryer Prolog would not support the
needs of ordinary Prolog programmers and is kind of
extra ordinary language runs counter to its own slogan.

It says the first line of the GitHub readme:

Scryer Prolog
Scryer Prolog aims to become to ISO Prolog what GHC is to Haskell:
https://github.com/mthom/scryer-prolog

So it subscribes to ISO Prolog which is anyway dual use,
impure and pure. I do not find that the ISO core standard
would only promote pure Prolog.

Scryer Prolog might be a test bed for some new upcoming
declarative programming language. But then the slogan has
probably to be changed if this test bed gets hijacked into

an exclusive discriminating venture. If the marking doesn't
work, maybe a side project with new Prolog system
XXX could be interesting. Where effectively the

impure predicates are blocked. This could be an interesting
idea, so there would be also download of XXX, which
is pure, and end-users would have no way to change that,

kind of relaunch of the Gödel language idea:

The Gödel Programming Language (Logic Programming)
von Patricia Hill (Author), John W. Lloyd (Author)
https://www.amazon.com/dp/0262082292

which had a similar aim.

Mostowski Collapse schrieb am Dienstag, 12. Juli 2022 um 10:28:22 UTC+2:
> Here is a suggestion to stop this madness:
>
>
> SWI-Prolog has an iso marker, which is seen in its
> documentation. Scryer Prolog seems to have two
> kinds of users. a) Ordinary Prolog users, and b)
>
> Users that project some more Declarative Language into
> Scryer Prolog, although Scryer Prolog is based on
> WAM which is not designed for that. Maybe introduce
>
> an impure marker so that we can identify the subset
> of this upcoming more Declarative Language. This
> could be more helpful than distracting GitHub issues
>
> that adresse the ordinary needs of Prolog programmers
> by posting trivialities that anyway any Prologer knows. Here
> is my suggestion, predicates could be marked as follows:
>
> ','/2: no marker
> (\+)/1: impure marker
> nonvar/1: impure marker
> Etc...
>
> One could then generate an index with the pure predicates
> that do not have the impure marker. Is there already a booklet
> about this new extra ordinary language somewhere?
>
> It would be interesting to see what language results by this index.
> Is it possible to bootstrap a Prolog system with this language?
> Does it contain some novel declarative predicates?

Re: 50 Years of Prolog Nonsense

<b853f7b6-e661-4fea-a3ce-1b95a80762a3n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1579&group=comp.lang.prolog#1579

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:622a:142:b0:31e:b5d1:9697 with SMTP id v2-20020a05622a014200b0031eb5d19697mr6689322qtw.567.1657615251795;
Tue, 12 Jul 2022 01:40:51 -0700 (PDT)
X-Received: by 2002:a81:4319:0:b0:31d:92c4:9e5f with SMTP id
q25-20020a814319000000b0031d92c49e5fmr5360551ywa.359.1657615251484; Tue, 12
Jul 2022 01:40:51 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Tue, 12 Jul 2022 01:40:51 -0700 (PDT)
In-Reply-To: <66835fe9-ef67-4fff-b7d9-502e6f075313n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <8c4dec30-95d4-4673-ae6c-4ef5b2fecd83n@googlegroups.com>
<66835fe9-ef67-4fff-b7d9-502e6f075313n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b853f7b6-e661-4fea-a3ce-1b95a80762a3n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Tue, 12 Jul 2022 08:40:51 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 81
 by: Mostowski Collapse - Tue, 12 Jul 2022 08:40 UTC

Even in 2018 People ask:

I want to start programming with Gödel language
Kurt Gödel, LQ Newbie - 02-24-2018, 09:41 AM
"I don’t know anything about computer programming.
So here I need help please explain to me how computers work.
I found this language called gödel,
but is this the language i can create a game with?
And I do want to know where can I go to learn programming."
https://www.linuxquestions.org/questions/programming-9/i-want-to-start-programming-with-g%F6del-language-4175624376/

Call the Scryer derived language Gödel II, how about that?

Mostowski Collapse schrieb am Dienstag, 12. Juli 2022 um 10:29:00 UTC+2:
> Also the idea that Scryer Prolog would not support the
> needs of ordinary Prolog programmers and is kind of
> extra ordinary language runs counter to its own slogan.
>
> It says the first line of the GitHub readme:
>
> Scryer Prolog
> Scryer Prolog aims to become to ISO Prolog what GHC is to Haskell:
> https://github.com/mthom/scryer-prolog
>
> So it subscribes to ISO Prolog which is anyway dual use,
> impure and pure. I do not find that the ISO core standard
> would only promote pure Prolog.
>
> Scryer Prolog might be a test bed for some new upcoming
> declarative programming language. But then the slogan has
> probably to be changed if this test bed gets hijacked into
>
> an exclusive discriminating venture. If the marking doesn't
> work, maybe a side project with new Prolog system
> XXX could be interesting. Where effectively the
>
> impure predicates are blocked. This could be an interesting
> idea, so there would be also download of XXX, which
> is pure, and end-users would have no way to change that,
>
> kind of relaunch of the Gödel language idea:
>
> The Gödel Programming Language (Logic Programming)
> von Patricia Hill (Author), John W. Lloyd (Author)
> https://www.amazon.com/dp/0262082292
>
> which had a similar aim.
> Mostowski Collapse schrieb am Dienstag, 12. Juli 2022 um 10:28:22 UTC+2:
> > Here is a suggestion to stop this madness:
> >
> >
> > SWI-Prolog has an iso marker, which is seen in its
> > documentation. Scryer Prolog seems to have two
> > kinds of users. a) Ordinary Prolog users, and b)
> >
> > Users that project some more Declarative Language into
> > Scryer Prolog, although Scryer Prolog is based on
> > WAM which is not designed for that. Maybe introduce
> >
> > an impure marker so that we can identify the subset
> > of this upcoming more Declarative Language. This
> > could be more helpful than distracting GitHub issues
> >
> > that adresse the ordinary needs of Prolog programmers
> > by posting trivialities that anyway any Prologer knows. Here
> > is my suggestion, predicates could be marked as follows:
> >
> > ','/2: no marker
> > (\+)/1: impure marker
> > nonvar/1: impure marker
> > Etc...
> >
> > One could then generate an index with the pure predicates
> > that do not have the impure marker. Is there already a booklet
> > about this new extra ordinary language somewhere?
> >
> > It would be interesting to see what language results by this index.
> > Is it possible to bootstrap a Prolog system with this language?
> > Does it contain some novel declarative predicates?

Re: 50 Years of Prolog Nonsense

<m2sfn6kzuc.fsf@logic.at>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1580&group=comp.lang.prolog#1580

  copy link   Newsgroups: comp.lang.prolog
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx15.iad.POSTED!not-for-mail
From: triska@logic.at (Markus Triska)
Newsgroups: comp.lang.prolog
Subject: Re: 50 Years of Prolog Nonsense
Organization: man
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com>
<b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com>
<5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com>
<1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com>
<3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com>
Message-ID: <m2sfn6kzuc.fsf@logic.at>
User-Agent: Emacs/27.0.50
Cancel-Lock: sha1:z/QEY+eYG9EGF+7XTDPRSS2JiTM=
MIME-Version: 1.0
Content-Type: text/plain
Lines: 35
X-Complaints-To: abuse@blocknews.net
NNTP-Posting-Date: Tue, 12 Jul 2022 17:21:20 UTC
Date: Tue, 12 Jul 2022 19:25:31 +0200
X-Received-Bytes: 2872
 by: Markus Triska - Tue, 12 Jul 2022 17:25 UTC

Mostowski Collapse <bursejan@gmail.com> writes:

> Which had these people behind it, potential users of it:

However, not everyone in this list supports everything in the document.
And the document is from 14 years ago: Back then, important constructs
such as if_/3, tfilter/3 etc. were not even found, and the quest for
better constructs was quite stalled. We can do better today than many of
us thought possible in 2008, or even in 2016: For example, just in these
last 6 years, we got 4 new Prolog systems (Scryer, Trealla, Tau and
ichiban/prolog) where double_quotes is set to chars by default. Who
thought that this was possible in 2008? I think even in 2012 or even
later, implementors advocated for JavaScript-style "strings" in Prolog
and even added them to their systems, until a new representation
pioneered by Scryer Prolog made chars viable in newer systems. forall/2
probably likewise seemed necessary in 2008, but does it still seem so
today? A better, not yet found construct, could likewise make it
obsolete, just like JavaScript-style strings have now become obsolete.

> Make a GitHub search, you find many places where it is used
> by some Prolog programmer. Its kind of staple food.

You will find a lot on GitHub, a lot of Java and C code too. It could
make for an interesting analysis, however I find decisions based on such
statistics subject to certain doubts: For example, is a construct that
violates elementary logical properties good because it appears in a lot
of programs? Or does this rather show that many programs could be
improved by removing this construct entirely from the language?

All the best,
Markus

--
comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
The Power of Prolog: https://www.metalevel.at/prolog

Re: 50 Years of Prolog Nonsense

<781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1581&group=comp.lang.prolog#1581

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:6214:27ef:b0:473:2465:c2 with SMTP id jt15-20020a05621427ef00b00473246500c2mr244737qvb.37.1657662619590;
Tue, 12 Jul 2022 14:50:19 -0700 (PDT)
X-Received: by 2002:a0d:e2d3:0:b0:31c:80cc:c002 with SMTP id
l202-20020a0de2d3000000b0031c80ccc002mr462339ywe.410.1657662619142; Tue, 12
Jul 2022 14:50:19 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Tue, 12 Jul 2022 14:50:18 -0700 (PDT)
In-Reply-To: <m2sfn6kzuc.fsf@logic.at>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <m2sfn6kzuc.fsf@logic.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Tue, 12 Jul 2022 21:50:19 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 75
 by: Mostowski Collapse - Tue, 12 Jul 2022 21:50 UTC

Well the error is always the programmer, in this
case the programmer doesnt know that in Prolog
bound variables have to be „ purified“ i.e. given

different names. For example spinning your nonsense
further far ahead, you could also demand to ban
findall from Prolog, because:

?- findall(X, member(X, [1,4,2], L).
L = [1, 4, 2]

X is not instantiated in the answer, so by monotonicity,
we should be able to instantiate it, but it goes wrong:

?- X = 3, findall(X, member(X, [1,4,2], L).
fail

Separating away variable names is bread and butter in
theorem proving. I dont think double_quotes chars value
is a contribution here, neither if_ etc.

I dont find any proposal for an improvement either in
the new Prolog systems like Trealla, Scryer, etc..

I only find turds on GitHub all over the place forbid
this forbid that despite there is not a single outcry
by other Prolog programmers that variable

purification is not a body convesion step in ISO standard
Prolog. Write please an amendmend to the ISO standard
or define a new language with automatic variable

separation and then we can talk again.

P.S.: Lambda Prolog can do it. But you would write
findall invocation slightly differently.

Markus Triska schrieb am Dienstag, 12. Juli 2022 um 19:21:23 UTC+2:
> Mostowski Collapse <burs...@gmail.com> writes:
>
> > Which had these people behind it, potential users of it:
> However, not everyone in this list supports everything in the document.
> And the document is from 14 years ago: Back then, important constructs
> such as if_/3, tfilter/3 etc. were not even found, and the quest for
> better constructs was quite stalled. We can do better today than many of
> us thought possible in 2008, or even in 2016: For example, just in these
> last 6 years, we got 4 new Prolog systems (Scryer, Trealla, Tau and
> ichiban/prolog) where double_quotes is set to chars by default. Who
> thought that this was possible in 2008? I think even in 2012 or even
> later, implementors advocated for JavaScript-style "strings" in Prolog
> and even added them to their systems, until a new representation
> pioneered by Scryer Prolog made chars viable in newer systems. forall/2
> probably likewise seemed necessary in 2008, but does it still seem so
> today? A better, not yet found construct, could likewise make it
> obsolete, just like JavaScript-style strings have now become obsolete.
> > Make a GitHub search, you find many places where it is used
> > by some Prolog programmer. Its kind of staple food.
> You will find a lot on GitHub, a lot of Java and C code too. It could
> make for an interesting analysis, however I find decisions based on such
> statistics subject to certain doubts: For example, is a construct that
> violates elementary logical properties good because it appears in a lot
> of programs? Or does this rather show that many programs could be
> improved by removing this construct entirely from the language?
>
> All the best,
> Markus
>
> --
> comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
> The Power of Prolog: https://www.metalevel.at/prolog

Re: 50 Years of Prolog Nonsense

<242e2f19-536c-48a5-b878-25a5203784dfn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1582&group=comp.lang.prolog#1582

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:622a:389:b0:31d:3d5e:6317 with SMTP id j9-20020a05622a038900b0031d3d5e6317mr146291qtx.268.1657663287856;
Tue, 12 Jul 2022 15:01:27 -0700 (PDT)
X-Received: by 2002:a25:b9c3:0:b0:668:a418:13c with SMTP id
y3-20020a25b9c3000000b00668a418013cmr454298ybj.498.1657663287310; Tue, 12 Jul
2022 15:01:27 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Tue, 12 Jul 2022 15:01:27 -0700 (PDT)
In-Reply-To: <781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <m2sfn6kzuc.fsf@logic.at>
<781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <242e2f19-536c-48a5-b878-25a5203784dfn@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Tue, 12 Jul 2022 22:01:27 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 105
 by: Mostowski Collapse - Tue, 12 Jul 2022 22:01 UTC

In Lambda Prolog you could define a findall
by accempting a higher order closure using
some lambda binder, here I am using (\)/2 for

this purpose. findall would only have arity 2:

?- findall(X\member(X, [1,4,2]), L).
L = [1, 4, 2]
?- X = 3, findall(X\member(X, [1,4,2]), L).
X = 3,
L = [1, 4, 2]

But you have to rethink your logic programming
language from ground up. You might need a different
read term, or some post processing of read term.

Lambda Prolog does all that. But posting turds on GitHub
does nothing. It only shows that you are ignorant about
possible solutions that exist since Alonzo Church,

https://en.m.wikipedia.org/wiki/Alonzo_Church

The solutions are older than the 50 years of prolog.

Mostowski Collapse schrieb am Dienstag, 12. Juli 2022 um 23:50:20 UTC+2:
> Well the error is always the programmer, in this
> case the programmer doesnt know that in Prolog
> bound variables have to be „ purified“ i.e. given
>
> different names. For example spinning your nonsense
> further far ahead, you could also demand to ban
> findall from Prolog, because:
>
> ?- findall(X, member(X, [1,4,2], L).
> L = [1, 4, 2]
>
> X is not instantiated in the answer, so by monotonicity,
> we should be able to instantiate it, but it goes wrong:
>
> ?- X = 3, findall(X, member(X, [1,4,2], L).
> fail
>
> Separating away variable names is bread and butter in
> theorem proving. I dont think double_quotes chars value
> is a contribution here, neither if_ etc.
>
> I dont find any proposal for an improvement either in
> the new Prolog systems like Trealla, Scryer, etc..
>
> I only find turds on GitHub all over the place forbid
> this forbid that despite there is not a single outcry
> by other Prolog programmers that variable
>
> purification is not a body convesion step in ISO standard
> Prolog. Write please an amendmend to the ISO standard
> or define a new language with automatic variable
>
> separation and then we can talk again.
>
> P.S.: Lambda Prolog can do it. But you would write
> findall invocation slightly differently.
> Markus Triska schrieb am Dienstag, 12. Juli 2022 um 19:21:23 UTC+2:
> > Mostowski Collapse <burs...@gmail.com> writes:
> >
> > > Which had these people behind it, potential users of it:
> > However, not everyone in this list supports everything in the document.
> > And the document is from 14 years ago: Back then, important constructs
> > such as if_/3, tfilter/3 etc. were not even found, and the quest for
> > better constructs was quite stalled. We can do better today than many of
> > us thought possible in 2008, or even in 2016: For example, just in these
> > last 6 years, we got 4 new Prolog systems (Scryer, Trealla, Tau and
> > ichiban/prolog) where double_quotes is set to chars by default. Who
> > thought that this was possible in 2008? I think even in 2012 or even
> > later, implementors advocated for JavaScript-style "strings" in Prolog
> > and even added them to their systems, until a new representation
> > pioneered by Scryer Prolog made chars viable in newer systems. forall/2
> > probably likewise seemed necessary in 2008, but does it still seem so
> > today? A better, not yet found construct, could likewise make it
> > obsolete, just like JavaScript-style strings have now become obsolete.
> > > Make a GitHub search, you find many places where it is used
> > > by some Prolog programmer. Its kind of staple food.
> > You will find a lot on GitHub, a lot of Java and C code too. It could
> > make for an interesting analysis, however I find decisions based on such
> > statistics subject to certain doubts: For example, is a construct that
> > violates elementary logical properties good because it appears in a lot
> > of programs? Or does this rather show that many programs could be
> > improved by removing this construct entirely from the language?
> >
> > All the best,
> > Markus
> >
> > --
> > comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
> > The Power of Prolog: https://www.metalevel.at/prolog

Re: 50 Years of Prolog Nonsense

<e3e3ff06-25e4-402d-aee2-9b6cc7a55c44n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1583&group=comp.lang.prolog#1583

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:6214:d62:b0:472:f9c3:c9be with SMTP id 2-20020a0562140d6200b00472f9c3c9bemr462106qvs.70.1657664219426;
Tue, 12 Jul 2022 15:16:59 -0700 (PDT)
X-Received: by 2002:a81:16ce:0:b0:31c:b93c:adbc with SMTP id
197-20020a8116ce000000b0031cb93cadbcmr606469yww.20.1657664219040; Tue, 12 Jul
2022 15:16:59 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Tue, 12 Jul 2022 15:16:58 -0700 (PDT)
In-Reply-To: <242e2f19-536c-48a5-b878-25a5203784dfn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <m2sfn6kzuc.fsf@logic.at>
<781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com> <242e2f19-536c-48a5-b878-25a5203784dfn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e3e3ff06-25e4-402d-aee2-9b6cc7a55c44n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Tue, 12 Jul 2022 22:16:59 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 139
 by: Mostowski Collapse - Tue, 12 Jul 2022 22:16 UTC

Corr.: Currently in Prolog we would have:

?- X = 3, findall(X, member(X, [1,4,2]), L).
X = 3,
L = []

In as far forall/2 has a similar „problem“
which is usually taken care by the programmer,
similarly like the programmer watches

that his findalls are purified according to the
use case he has. Etc.. etc… But compared
to Lambda Prolog ordinary prolog is

more primitive and has primafacie some inference
rules missing, although a lot can be compensated by
meta interpreters, little theorem provers, little

new languages written in Prolog itself. But these little
tools might be impure. Some lamda Prolog through its
HOAS can enforce meta circular purity. Here I

totally agree that Prolog lacks this feature. But you cannot
add this feature by forbidding things as you do. Compared
to Lamda Prolog your approach of turding Prolog

by disrupting GitHub with crazy comments and
no contribution has zero impact on improving the
situation. Its just nonsense.

Mostowski Collapse schrieb am Mittwoch, 13. Juli 2022 um 00:01:29 UTC+2:
> In Lambda Prolog you could define a findall
> by accempting a higher order closure using
> some lambda binder, here I am using (\)/2 for
>
> this purpose. findall would only have arity 2:
>
> ?- findall(X\member(X, [1,4,2]), L).
> L = [1, 4, 2]
> ?- X = 3, findall(X\member(X, [1,4,2]), L).
> X = 3,
> L = [1, 4, 2]
> But you have to rethink your logic programming
> language from ground up. You might need a different
> read term, or some post processing of read term.
>
> Lambda Prolog does all that. But posting turds on GitHub
> does nothing. It only shows that you are ignorant about
> possible solutions that exist since Alonzo Church,
>
> https://en.m.wikipedia.org/wiki/Alonzo_Church
>
> The solutions are older than the 50 years of prolog.
> Mostowski Collapse schrieb am Dienstag, 12. Juli 2022 um 23:50:20 UTC+2:
> > Well the error is always the programmer, in this
> > case the programmer doesnt know that in Prolog
> > bound variables have to be „ purified“ i.e. given
> >
> > different names. For example spinning your nonsense
> > further far ahead, you could also demand to ban
> > findall from Prolog, because:
> >
> > ?- findall(X, member(X, [1,4,2], L).
> > L = [1, 4, 2]
> >
> > X is not instantiated in the answer, so by monotonicity,
> > we should be able to instantiate it, but it goes wrong:
> >
> > ?- X = 3, findall(X, member(X, [1,4,2], L).
> > fail
> >
> > Separating away variable names is bread and butter in
> > theorem proving. I dont think double_quotes chars value
> > is a contribution here, neither if_ etc.
> >
> > I dont find any proposal for an improvement either in
> > the new Prolog systems like Trealla, Scryer, etc..
> >
> > I only find turds on GitHub all over the place forbid
> > this forbid that despite there is not a single outcry
> > by other Prolog programmers that variable
> >
> > purification is not a body convesion step in ISO standard
> > Prolog. Write please an amendmend to the ISO standard
> > or define a new language with automatic variable
> >
> > separation and then we can talk again.
> >
> > P.S.: Lambda Prolog can do it. But you would write
> > findall invocation slightly differently.
> > Markus Triska schrieb am Dienstag, 12. Juli 2022 um 19:21:23 UTC+2:
> > > Mostowski Collapse <burs...@gmail.com> writes:
> > >
> > > > Which had these people behind it, potential users of it:
> > > However, not everyone in this list supports everything in the document.
> > > And the document is from 14 years ago: Back then, important constructs
> > > such as if_/3, tfilter/3 etc. were not even found, and the quest for
> > > better constructs was quite stalled. We can do better today than many of
> > > us thought possible in 2008, or even in 2016: For example, just in these
> > > last 6 years, we got 4 new Prolog systems (Scryer, Trealla, Tau and
> > > ichiban/prolog) where double_quotes is set to chars by default. Who
> > > thought that this was possible in 2008? I think even in 2012 or even
> > > later, implementors advocated for JavaScript-style "strings" in Prolog
> > > and even added them to their systems, until a new representation
> > > pioneered by Scryer Prolog made chars viable in newer systems. forall/2
> > > probably likewise seemed necessary in 2008, but does it still seem so
> > > today? A better, not yet found construct, could likewise make it
> > > obsolete, just like JavaScript-style strings have now become obsolete..
> > > > Make a GitHub search, you find many places where it is used
> > > > by some Prolog programmer. Its kind of staple food.
> > > You will find a lot on GitHub, a lot of Java and C code too. It could
> > > make for an interesting analysis, however I find decisions based on such
> > > statistics subject to certain doubts: For example, is a construct that
> > > violates elementary logical properties good because it appears in a lot
> > > of programs? Or does this rather show that many programs could be
> > > improved by removing this construct entirely from the language?
> > >
> > > All the best,
> > > Markus
> > >
> > > --
> > > comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
> > > The Power of Prolog: https://www.metalevel.at/prolog

Re: 50 Years of Prolog Nonsense

<c06d38ce-e0bc-41cf-a047-31329c129a18n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1584&group=comp.lang.prolog#1584

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:620a:4452:b0:6b2:4f49:d053 with SMTP id w18-20020a05620a445200b006b24f49d053mr464075qkp.685.1657666967094;
Tue, 12 Jul 2022 16:02:47 -0700 (PDT)
X-Received: by 2002:a25:d7d6:0:b0:66e:47b3:35be with SMTP id
o205-20020a25d7d6000000b0066e47b335bemr750635ybg.140.1657666966799; Tue, 12
Jul 2022 16:02:46 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Tue, 12 Jul 2022 16:02:46 -0700 (PDT)
In-Reply-To: <e3e3ff06-25e4-402d-aee2-9b6cc7a55c44n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <m2sfn6kzuc.fsf@logic.at>
<781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com> <242e2f19-536c-48a5-b878-25a5203784dfn@googlegroups.com>
<e3e3ff06-25e4-402d-aee2-9b6cc7a55c44n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c06d38ce-e0bc-41cf-a047-31329c129a18n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Tue, 12 Jul 2022 23:02:47 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 169
 by: Mostowski Collapse - Tue, 12 Jul 2022 23:02 UTC

Also the uses of forall/2 have increased in the past.
Some people use it as a replacement for failure driven loop:

?- G, C, fail; true.

They write it as:

?- forall(G, C).

It has the advantage/disadvantage that it signals
failure of C. Which the failure driven loop does not do.
You find it in the wild here:

main :-
forall(number_fizzbuzz_below_100(_, FizzBuzz),
(write(FizzBuzz), write('\n'))).

https://github.com/triska/clpz/issues/12

Its from some of your users of Scryer Prolog
and some of your users of CLP(Z). So I guess
you dont know who your users are?

Good luck with that…
You are Genius like Putin.

Mostowski Collapse schrieb am Mittwoch, 13. Juli 2022 um 00:17:00 UTC+2:
> Corr.: Currently in Prolog we would have:
>
> ?- X = 3, findall(X, member(X, [1,4,2]), L).
> X = 3,
> L = []
>
> In as far forall/2 has a similar „problem“
> which is usually taken care by the programmer,
> similarly like the programmer watches
>
> that his findalls are purified according to the
> use case he has. Etc.. etc… But compared
> to Lambda Prolog ordinary prolog is
>
> more primitive and has primafacie some inference
> rules missing, although a lot can be compensated by
> meta interpreters, little theorem provers, little
>
> new languages written in Prolog itself. But these little
> tools might be impure. Some lamda Prolog through its
> HOAS can enforce meta circular purity. Here I
>
> totally agree that Prolog lacks this feature. But you cannot
> add this feature by forbidding things as you do. Compared
> to Lamda Prolog your approach of turding Prolog
>
> by disrupting GitHub with crazy comments and
> no contribution has zero impact on improving the
> situation. Its just nonsense.
> Mostowski Collapse schrieb am Mittwoch, 13. Juli 2022 um 00:01:29 UTC+2:
> > In Lambda Prolog you could define a findall
> > by accempting a higher order closure using
> > some lambda binder, here I am using (\)/2 for
> >
> > this purpose. findall would only have arity 2:
> >
> > ?- findall(X\member(X, [1,4,2]), L).
> > L = [1, 4, 2]
> > ?- X = 3, findall(X\member(X, [1,4,2]), L).
> > X = 3,
> > L = [1, 4, 2]
> > But you have to rethink your logic programming
> > language from ground up. You might need a different
> > read term, or some post processing of read term.
> >
> > Lambda Prolog does all that. But posting turds on GitHub
> > does nothing. It only shows that you are ignorant about
> > possible solutions that exist since Alonzo Church,
> >
> > https://en.m.wikipedia.org/wiki/Alonzo_Church
> >
> > The solutions are older than the 50 years of prolog.
> > Mostowski Collapse schrieb am Dienstag, 12. Juli 2022 um 23:50:20 UTC+2:
> > > Well the error is always the programmer, in this
> > > case the programmer doesnt know that in Prolog
> > > bound variables have to be „ purified“ i.e. given
> > >
> > > different names. For example spinning your nonsense
> > > further far ahead, you could also demand to ban
> > > findall from Prolog, because:
> > >
> > > ?- findall(X, member(X, [1,4,2], L).
> > > L = [1, 4, 2]
> > >
> > > X is not instantiated in the answer, so by monotonicity,
> > > we should be able to instantiate it, but it goes wrong:
> > >
> > > ?- X = 3, findall(X, member(X, [1,4,2], L).
> > > fail
> > >
> > > Separating away variable names is bread and butter in
> > > theorem proving. I dont think double_quotes chars value
> > > is a contribution here, neither if_ etc.
> > >
> > > I dont find any proposal for an improvement either in
> > > the new Prolog systems like Trealla, Scryer, etc..
> > >
> > > I only find turds on GitHub all over the place forbid
> > > this forbid that despite there is not a single outcry
> > > by other Prolog programmers that variable
> > >
> > > purification is not a body convesion step in ISO standard
> > > Prolog. Write please an amendmend to the ISO standard
> > > or define a new language with automatic variable
> > >
> > > separation and then we can talk again.
> > >
> > > P.S.: Lambda Prolog can do it. But you would write
> > > findall invocation slightly differently.
> > > Markus Triska schrieb am Dienstag, 12. Juli 2022 um 19:21:23 UTC+2:
> > > > Mostowski Collapse <burs...@gmail.com> writes:
> > > >
> > > > > Which had these people behind it, potential users of it:
> > > > However, not everyone in this list supports everything in the document.
> > > > And the document is from 14 years ago: Back then, important constructs
> > > > such as if_/3, tfilter/3 etc. were not even found, and the quest for
> > > > better constructs was quite stalled. We can do better today than many of
> > > > us thought possible in 2008, or even in 2016: For example, just in these
> > > > last 6 years, we got 4 new Prolog systems (Scryer, Trealla, Tau and
> > > > ichiban/prolog) where double_quotes is set to chars by default. Who
> > > > thought that this was possible in 2008? I think even in 2012 or even
> > > > later, implementors advocated for JavaScript-style "strings" in Prolog
> > > > and even added them to their systems, until a new representation
> > > > pioneered by Scryer Prolog made chars viable in newer systems. forall/2
> > > > probably likewise seemed necessary in 2008, but does it still seem so
> > > > today? A better, not yet found construct, could likewise make it
> > > > obsolete, just like JavaScript-style strings have now become obsolete.
> > > > > Make a GitHub search, you find many places where it is used
> > > > > by some Prolog programmer. Its kind of staple food.
> > > > You will find a lot on GitHub, a lot of Java and C code too. It could
> > > > make for an interesting analysis, however I find decisions based on such
> > > > statistics subject to certain doubts: For example, is a construct that
> > > > violates elementary logical properties good because it appears in a lot
> > > > of programs? Or does this rather show that many programs could be
> > > > improved by removing this construct entirely from the language?
> > > >
> > > > All the best,
> > > > Markus
> > > >
> > > > --
> > > > comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
> > > > The Power of Prolog: https://www.metalevel.at/prolog

Re: 50 Years of Prolog Nonsense

<922650d6-1ca0-4cd1-8792-e5a5a9382dd7n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1585&group=comp.lang.prolog#1585

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:622a:189d:b0:31e:a89b:99fd with SMTP id v29-20020a05622a189d00b0031ea89b99fdmr434041qtc.638.1657668146096;
Tue, 12 Jul 2022 16:22:26 -0700 (PDT)
X-Received: by 2002:a81:13d7:0:b0:31c:c22b:4727 with SMTP id
206-20020a8113d7000000b0031cc22b4727mr962299ywt.38.1657668145857; Tue, 12 Jul
2022 16:22:25 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Tue, 12 Jul 2022 16:22:25 -0700 (PDT)
In-Reply-To: <c06d38ce-e0bc-41cf-a047-31329c129a18n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <m2sfn6kzuc.fsf@logic.at>
<781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com> <242e2f19-536c-48a5-b878-25a5203784dfn@googlegroups.com>
<e3e3ff06-25e4-402d-aee2-9b6cc7a55c44n@googlegroups.com> <c06d38ce-e0bc-41cf-a047-31329c129a18n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <922650d6-1ca0-4cd1-8792-e5a5a9382dd7n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Tue, 12 Jul 2022 23:22:26 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 211
 by: Mostowski Collapse - Tue, 12 Jul 2022 23:22 UTC

Also there are quite capable people in the SWI Prolog
discourse group, that where discussing forall/2
versus foreach/2, repeatedly showing some

deep understanding of the constructs, which I find
lacking if somebody critizises the construct based
on a usage error in the form

of lack of purification. That paints one into a corner
of not understanding the construct at all. Last but
not least s(CASP) starting with s(ASP),

have also found uses for some forms of forall/2.
Just read the papers follow the forums and
inspect the systems. forall/2 has

come to amazing new life. forall is also
not the worst name of the predicate, since it can
provide the so called bounded universal quantifier,

under certain circumstances you can tranlate it
(this is left as an exercise):

ALL(x):[A => B]

But I have recently started calling it Peano
implication, since Giuseppe Peano used the
following notation for it:

A =>x B

putting more emphasis on the underlying
implication than on the universally
bound variable.

Have Fun!

Mostowski Collapse schrieb am Mittwoch, 13. Juli 2022 um 01:02:47 UTC+2:
> Also the uses of forall/2 have increased in the past.
> Some people use it as a replacement for failure driven loop:
>
> ?- G, C, fail; true.
>
> They write it as:
>
> ?- forall(G, C).
>
> It has the advantage/disadvantage that it signals
> failure of C. Which the failure driven loop does not do.
> You find it in the wild here:
>
> main :-
> forall(number_fizzbuzz_below_100(_, FizzBuzz),
> (write(FizzBuzz), write('\n'))).
>
> https://github.com/triska/clpz/issues/12
>
> Its from some of your users of Scryer Prolog
> and some of your users of CLP(Z). So I guess
> you dont know who your users are?
>
> Good luck with that…
> You are Genius like Putin.
> Mostowski Collapse schrieb am Mittwoch, 13. Juli 2022 um 00:17:00 UTC+2:
> > Corr.: Currently in Prolog we would have:
> >
> > ?- X = 3, findall(X, member(X, [1,4,2]), L).
> > X = 3,
> > L = []
> >
> > In as far forall/2 has a similar „problem“
> > which is usually taken care by the programmer,
> > similarly like the programmer watches
> >
> > that his findalls are purified according to the
> > use case he has. Etc.. etc… But compared
> > to Lambda Prolog ordinary prolog is
> >
> > more primitive and has primafacie some inference
> > rules missing, although a lot can be compensated by
> > meta interpreters, little theorem provers, little
> >
> > new languages written in Prolog itself. But these little
> > tools might be impure. Some lamda Prolog through its
> > HOAS can enforce meta circular purity. Here I
> >
> > totally agree that Prolog lacks this feature. But you cannot
> > add this feature by forbidding things as you do. Compared
> > to Lamda Prolog your approach of turding Prolog
> >
> > by disrupting GitHub with crazy comments and
> > no contribution has zero impact on improving the
> > situation. Its just nonsense.
> > Mostowski Collapse schrieb am Mittwoch, 13. Juli 2022 um 00:01:29 UTC+2:
> > > In Lambda Prolog you could define a findall
> > > by accempting a higher order closure using
> > > some lambda binder, here I am using (\)/2 for
> > >
> > > this purpose. findall would only have arity 2:
> > >
> > > ?- findall(X\member(X, [1,4,2]), L).
> > > L = [1, 4, 2]
> > > ?- X = 3, findall(X\member(X, [1,4,2]), L).
> > > X = 3,
> > > L = [1, 4, 2]
> > > But you have to rethink your logic programming
> > > language from ground up. You might need a different
> > > read term, or some post processing of read term.
> > >
> > > Lambda Prolog does all that. But posting turds on GitHub
> > > does nothing. It only shows that you are ignorant about
> > > possible solutions that exist since Alonzo Church,
> > >
> > > https://en.m.wikipedia.org/wiki/Alonzo_Church
> > >
> > > The solutions are older than the 50 years of prolog.
> > > Mostowski Collapse schrieb am Dienstag, 12. Juli 2022 um 23:50:20 UTC+2:
> > > > Well the error is always the programmer, in this
> > > > case the programmer doesnt know that in Prolog
> > > > bound variables have to be „ purified“ i.e. given
> > > >
> > > > different names. For example spinning your nonsense
> > > > further far ahead, you could also demand to ban
> > > > findall from Prolog, because:
> > > >
> > > > ?- findall(X, member(X, [1,4,2], L).
> > > > L = [1, 4, 2]
> > > >
> > > > X is not instantiated in the answer, so by monotonicity,
> > > > we should be able to instantiate it, but it goes wrong:
> > > >
> > > > ?- X = 3, findall(X, member(X, [1,4,2], L).
> > > > fail
> > > >
> > > > Separating away variable names is bread and butter in
> > > > theorem proving. I dont think double_quotes chars value
> > > > is a contribution here, neither if_ etc.
> > > >
> > > > I dont find any proposal for an improvement either in
> > > > the new Prolog systems like Trealla, Scryer, etc..
> > > >
> > > > I only find turds on GitHub all over the place forbid
> > > > this forbid that despite there is not a single outcry
> > > > by other Prolog programmers that variable
> > > >
> > > > purification is not a body convesion step in ISO standard
> > > > Prolog. Write please an amendmend to the ISO standard
> > > > or define a new language with automatic variable
> > > >
> > > > separation and then we can talk again.
> > > >
> > > > P.S.: Lambda Prolog can do it. But you would write
> > > > findall invocation slightly differently.
> > > > Markus Triska schrieb am Dienstag, 12. Juli 2022 um 19:21:23 UTC+2:
> > > > > Mostowski Collapse <burs...@gmail.com> writes:
> > > > >
> > > > > > Which had these people behind it, potential users of it:
> > > > > However, not everyone in this list supports everything in the document.
> > > > > And the document is from 14 years ago: Back then, important constructs
> > > > > such as if_/3, tfilter/3 etc. were not even found, and the quest for
> > > > > better constructs was quite stalled. We can do better today than many of
> > > > > us thought possible in 2008, or even in 2016: For example, just in these
> > > > > last 6 years, we got 4 new Prolog systems (Scryer, Trealla, Tau and
> > > > > ichiban/prolog) where double_quotes is set to chars by default. Who
> > > > > thought that this was possible in 2008? I think even in 2012 or even
> > > > > later, implementors advocated for JavaScript-style "strings" in Prolog
> > > > > and even added them to their systems, until a new representation
> > > > > pioneered by Scryer Prolog made chars viable in newer systems. forall/2
> > > > > probably likewise seemed necessary in 2008, but does it still seem so
> > > > > today? A better, not yet found construct, could likewise make it
> > > > > obsolete, just like JavaScript-style strings have now become obsolete.
> > > > > > Make a GitHub search, you find many places where it is used
> > > > > > by some Prolog programmer. Its kind of staple food.
> > > > > You will find a lot on GitHub, a lot of Java and C code too. It could
> > > > > make for an interesting analysis, however I find decisions based on such
> > > > > statistics subject to certain doubts: For example, is a construct that
> > > > > violates elementary logical properties good because it appears in a lot
> > > > > of programs? Or does this rather show that many programs could be
> > > > > improved by removing this construct entirely from the language?
> > > > >
> > > > > All the best,
> > > > > Markus
> > > > >
> > > > > --
> > > > > comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
> > > > > The Power of Prolog: https://www.metalevel.at/prolog

Re: 50 Years of Prolog Nonsense

<9eddc0c6-1e9e-4d89-8486-1a7b6c74db7cn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1586&group=comp.lang.prolog#1586

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:6214:62a:b0:472:eac1:7565 with SMTP id a10-20020a056214062a00b00472eac17565mr616130qvx.71.1657668777259;
Tue, 12 Jul 2022 16:32:57 -0700 (PDT)
X-Received: by 2002:a05:6902:1143:b0:66e:eb08:4c23 with SMTP id
p3-20020a056902114300b0066eeb084c23mr871414ybu.570.1657668776948; Tue, 12 Jul
2022 16:32:56 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Tue, 12 Jul 2022 16:32:56 -0700 (PDT)
In-Reply-To: <922650d6-1ca0-4cd1-8792-e5a5a9382dd7n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <m2sfn6kzuc.fsf@logic.at>
<781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com> <242e2f19-536c-48a5-b878-25a5203784dfn@googlegroups.com>
<e3e3ff06-25e4-402d-aee2-9b6cc7a55c44n@googlegroups.com> <c06d38ce-e0bc-41cf-a047-31329c129a18n@googlegroups.com>
<922650d6-1ca0-4cd1-8792-e5a5a9382dd7n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9eddc0c6-1e9e-4d89-8486-1a7b6c74db7cn@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Tue, 12 Jul 2022 23:32:57 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 227
 by: Mostowski Collapse - Tue, 12 Jul 2022 23:32 UTC

Peanos conditional made it
even into the Principia Mathematica:

Before we look at a wider range of examples, a detailed
example involving quantified variables will prove to be
instructive. Whitehead and Russell follow Peano’s

practice of expressing universally quantified conditionals
(such as “All ps are qs”) with the bound variable
subscripted under the conditional sign.

https://plato.stanford.edu/entries/pm-notation/#Exam

Lets make Peano great again!

Mostowski Collapse schrieb am Mittwoch, 13. Juli 2022 um 01:22:27 UTC+2:
> Also there are quite capable people in the SWI Prolog
> discourse group, that where discussing forall/2
> versus foreach/2, repeatedly showing some
>
> deep understanding of the constructs, which I find
> lacking if somebody critizises the construct based
> on a usage error in the form
>
> of lack of purification. That paints one into a corner
> of not understanding the construct at all. Last but
> not least s(CASP) starting with s(ASP),
>
> have also found uses for some forms of forall/2.
> Just read the papers follow the forums and
> inspect the systems. forall/2 has
>
> come to amazing new life. forall is also
> not the worst name of the predicate, since it can
> provide the so called bounded universal quantifier,
>
> under certain circumstances you can tranlate it
> (this is left as an exercise):
>
> ALL(x):[A => B]
>
> But I have recently started calling it Peano
> implication, since Giuseppe Peano used the
> following notation for it:
>
> A =>x B
>
> putting more emphasis on the underlying
> implication than on the universally
> bound variable.
>
> Have Fun!
> Mostowski Collapse schrieb am Mittwoch, 13. Juli 2022 um 01:02:47 UTC+2:
> > Also the uses of forall/2 have increased in the past.
> > Some people use it as a replacement for failure driven loop:
> >
> > ?- G, C, fail; true.
> >
> > They write it as:
> >
> > ?- forall(G, C).
> >
> > It has the advantage/disadvantage that it signals
> > failure of C. Which the failure driven loop does not do.
> > You find it in the wild here:
> >
> > main :-
> > forall(number_fizzbuzz_below_100(_, FizzBuzz),
> > (write(FizzBuzz), write('\n'))).
> >
> > https://github.com/triska/clpz/issues/12
> >
> > Its from some of your users of Scryer Prolog
> > and some of your users of CLP(Z). So I guess
> > you dont know who your users are?
> >
> > Good luck with that…
> > You are Genius like Putin.
> > Mostowski Collapse schrieb am Mittwoch, 13. Juli 2022 um 00:17:00 UTC+2:
> > > Corr.: Currently in Prolog we would have:
> > >
> > > ?- X = 3, findall(X, member(X, [1,4,2]), L).
> > > X = 3,
> > > L = []
> > >
> > > In as far forall/2 has a similar „problem“
> > > which is usually taken care by the programmer,
> > > similarly like the programmer watches
> > >
> > > that his findalls are purified according to the
> > > use case he has. Etc.. etc… But compared
> > > to Lambda Prolog ordinary prolog is
> > >
> > > more primitive and has primafacie some inference
> > > rules missing, although a lot can be compensated by
> > > meta interpreters, little theorem provers, little
> > >
> > > new languages written in Prolog itself. But these little
> > > tools might be impure. Some lamda Prolog through its
> > > HOAS can enforce meta circular purity. Here I
> > >
> > > totally agree that Prolog lacks this feature. But you cannot
> > > add this feature by forbidding things as you do. Compared
> > > to Lamda Prolog your approach of turding Prolog
> > >
> > > by disrupting GitHub with crazy comments and
> > > no contribution has zero impact on improving the
> > > situation. Its just nonsense.
> > > Mostowski Collapse schrieb am Mittwoch, 13. Juli 2022 um 00:01:29 UTC+2:
> > > > In Lambda Prolog you could define a findall
> > > > by accempting a higher order closure using
> > > > some lambda binder, here I am using (\)/2 for
> > > >
> > > > this purpose. findall would only have arity 2:
> > > >
> > > > ?- findall(X\member(X, [1,4,2]), L).
> > > > L = [1, 4, 2]
> > > > ?- X = 3, findall(X\member(X, [1,4,2]), L).
> > > > X = 3,
> > > > L = [1, 4, 2]
> > > > But you have to rethink your logic programming
> > > > language from ground up. You might need a different
> > > > read term, or some post processing of read term.
> > > >
> > > > Lambda Prolog does all that. But posting turds on GitHub
> > > > does nothing. It only shows that you are ignorant about
> > > > possible solutions that exist since Alonzo Church,
> > > >
> > > > https://en.m.wikipedia.org/wiki/Alonzo_Church
> > > >
> > > > The solutions are older than the 50 years of prolog.
> > > > Mostowski Collapse schrieb am Dienstag, 12. Juli 2022 um 23:50:20 UTC+2:
> > > > > Well the error is always the programmer, in this
> > > > > case the programmer doesnt know that in Prolog
> > > > > bound variables have to be „ purified“ i.e. given
> > > > >
> > > > > different names. For example spinning your nonsense
> > > > > further far ahead, you could also demand to ban
> > > > > findall from Prolog, because:
> > > > >
> > > > > ?- findall(X, member(X, [1,4,2], L).
> > > > > L = [1, 4, 2]
> > > > >
> > > > > X is not instantiated in the answer, so by monotonicity,
> > > > > we should be able to instantiate it, but it goes wrong:
> > > > >
> > > > > ?- X = 3, findall(X, member(X, [1,4,2], L).
> > > > > fail
> > > > >
> > > > > Separating away variable names is bread and butter in
> > > > > theorem proving. I dont think double_quotes chars value
> > > > > is a contribution here, neither if_ etc.
> > > > >
> > > > > I dont find any proposal for an improvement either in
> > > > > the new Prolog systems like Trealla, Scryer, etc..
> > > > >
> > > > > I only find turds on GitHub all over the place forbid
> > > > > this forbid that despite there is not a single outcry
> > > > > by other Prolog programmers that variable
> > > > >
> > > > > purification is not a body convesion step in ISO standard
> > > > > Prolog. Write please an amendmend to the ISO standard
> > > > > or define a new language with automatic variable
> > > > >
> > > > > separation and then we can talk again.
> > > > >
> > > > > P.S.: Lambda Prolog can do it. But you would write
> > > > > findall invocation slightly differently.
> > > > > Markus Triska schrieb am Dienstag, 12. Juli 2022 um 19:21:23 UTC+2:
> > > > > > Mostowski Collapse <burs...@gmail.com> writes:
> > > > > >
> > > > > > > Which had these people behind it, potential users of it:
> > > > > > However, not everyone in this list supports everything in the document.
> > > > > > And the document is from 14 years ago: Back then, important constructs
> > > > > > such as if_/3, tfilter/3 etc. were not even found, and the quest for
> > > > > > better constructs was quite stalled. We can do better today than many of
> > > > > > us thought possible in 2008, or even in 2016: For example, just in these
> > > > > > last 6 years, we got 4 new Prolog systems (Scryer, Trealla, Tau and
> > > > > > ichiban/prolog) where double_quotes is set to chars by default. Who
> > > > > > thought that this was possible in 2008? I think even in 2012 or even
> > > > > > later, implementors advocated for JavaScript-style "strings" in Prolog
> > > > > > and even added them to their systems, until a new representation
> > > > > > pioneered by Scryer Prolog made chars viable in newer systems. forall/2
> > > > > > probably likewise seemed necessary in 2008, but does it still seem so
> > > > > > today? A better, not yet found construct, could likewise make it
> > > > > > obsolete, just like JavaScript-style strings have now become obsolete.
> > > > > > > Make a GitHub search, you find many places where it is used
> > > > > > > by some Prolog programmer. Its kind of staple food.
> > > > > > You will find a lot on GitHub, a lot of Java and C code too. It could
> > > > > > make for an interesting analysis, however I find decisions based on such
> > > > > > statistics subject to certain doubts: For example, is a construct that
> > > > > > violates elementary logical properties good because it appears in a lot
> > > > > > of programs? Or does this rather show that many programs could be
> > > > > > improved by removing this construct entirely from the language?
> > > > > >
> > > > > > All the best,
> > > > > > Markus
> > > > > >
> > > > > > --
> > > > > > comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
> > > > > > The Power of Prolog: https://www.metalevel.at/prolog


Click here to read the complete article
Re: 50 Years of Prolog Nonsense

<db4884ea-268d-4d4b-9e1c-ee8e23d9633cn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1587&group=comp.lang.prolog#1587

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a37:8904:0:b0:6af:199b:bcb with SMTP id l4-20020a378904000000b006af199b0bcbmr2451538qkd.462.1657721328814;
Wed, 13 Jul 2022 07:08:48 -0700 (PDT)
X-Received: by 2002:a05:6902:4d0:b0:66e:4fef:cc3f with SMTP id
v16-20020a05690204d000b0066e4fefcc3fmr3712872ybs.20.1657721328454; Wed, 13
Jul 2022 07:08:48 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Wed, 13 Jul 2022 07:08:48 -0700 (PDT)
In-Reply-To: <9eddc0c6-1e9e-4d89-8486-1a7b6c74db7cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <m2sfn6kzuc.fsf@logic.at>
<781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com> <242e2f19-536c-48a5-b878-25a5203784dfn@googlegroups.com>
<e3e3ff06-25e4-402d-aee2-9b6cc7a55c44n@googlegroups.com> <c06d38ce-e0bc-41cf-a047-31329c129a18n@googlegroups.com>
<922650d6-1ca0-4cd1-8792-e5a5a9382dd7n@googlegroups.com> <9eddc0c6-1e9e-4d89-8486-1a7b6c74db7cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <db4884ea-268d-4d4b-9e1c-ee8e23d9633cn@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Wed, 13 Jul 2022 14:08:48 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3552
 by: Mostowski Collapse - Wed, 13 Jul 2022 14:08 UTC

Small addendum. In certain situations (\+ A) acts
as ¬A, but in other situations it can also act as
¬∃x1..,∃xnA for some variables x1,..,xn.

Same for forall/2, in certain situations forall(A,B)
acts as A → B, but it can also act as ∀x1..,∀xn(A →
∃y1..∃ymB). So its more complicated than only

forall quantifier, its forall quantifier implication
existential quantifier. But when is it Peano implication?
Well, for example if the second formula, i.e. B is

ground negation, if during execution, from the
bindings after A the currently invoked B is already
ground. The the result of forall/2 is not this:

∀x1..,∀xn(A → ∃y1..∃ymB)

But only this:

∀x1..,∀xn(A → B)

Mostowski Collapse schrieb am Mittwoch, 13. Juli 2022 um 01:32:58 UTC+2:
> Peanos conditional made it
> even into the Principia Mathematica:
>
> Before we look at a wider range of examples, a detailed
> example involving quantified variables will prove to be
> instructive. Whitehead and Russell follow Peano’s
>
> practice of expressing universally quantified conditionals
> (such as “All ps are qs”) with the bound variable
> subscripted under the conditional sign.
>
> https://plato.stanford.edu/entries/pm-notation/#Exam
>
> Lets make Peano great again!

Re: 50 Years of Prolog Nonsense

<776d1dff-fdbc-4f98-ac73-c7b987e66339n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1601&group=comp.lang.prolog#1601

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ac8:7d0f:0:b0:342:a694:c961 with SMTP id g15-20020ac87d0f000000b00342a694c961mr959319qtb.538.1659661096927;
Thu, 04 Aug 2022 17:58:16 -0700 (PDT)
X-Received: by 2002:a81:5d06:0:b0:31e:3b24:4a86 with SMTP id
r6-20020a815d06000000b0031e3b244a86mr3942037ywb.245.1659661096625; Thu, 04
Aug 2022 17:58:16 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border-2.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 4 Aug 2022 17:58:16 -0700 (PDT)
In-Reply-To: <db4884ea-268d-4d4b-9e1c-ee8e23d9633cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <m2sfn6kzuc.fsf@logic.at>
<781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com> <242e2f19-536c-48a5-b878-25a5203784dfn@googlegroups.com>
<e3e3ff06-25e4-402d-aee2-9b6cc7a55c44n@googlegroups.com> <c06d38ce-e0bc-41cf-a047-31329c129a18n@googlegroups.com>
<922650d6-1ca0-4cd1-8792-e5a5a9382dd7n@googlegroups.com> <9eddc0c6-1e9e-4d89-8486-1a7b6c74db7cn@googlegroups.com>
<db4884ea-268d-4d4b-9e1c-ee8e23d9633cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <776d1dff-fdbc-4f98-ac73-c7b987e66339n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Fri, 05 Aug 2022 00:58:16 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 20
 by: Mostowski Collapse - Fri, 5 Aug 2022 00:58 UTC

Ciao Prologs “State of the Art” is rather the
night mare of “The Art of loosing State”.

?- assertz(foo).
yes

?- foo.
yes

?- repeat, fail.
{ Execution aborted }

?- foo.
{ERROR: No handle found for thrown exception error(existence_error(procedure,'user:foo'/0),'user:foo'/0)}
aborted

https://ciao-lang.org/playground/

I hope SWI-Prolog will not blindly immitate
every nonsense from Ciao Prolog.

Re: 50 Years of Prolog Nonsense

<98ad3212-8093-488e-998d-ebe8e5204c2en@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1602&group=comp.lang.prolog#1602

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:622a:144f:b0:341:728:dee with SMTP id v15-20020a05622a144f00b0034107280deemr3807285qtx.459.1659661275376;
Thu, 04 Aug 2022 18:01:15 -0700 (PDT)
X-Received: by 2002:a0d:d9c7:0:b0:324:6979:1606 with SMTP id
b190-20020a0dd9c7000000b0032469791606mr4057042ywe.69.1659661274985; Thu, 04
Aug 2022 18:01:14 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Thu, 4 Aug 2022 18:01:14 -0700 (PDT)
In-Reply-To: <776d1dff-fdbc-4f98-ac73-c7b987e66339n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <m2sfn6kzuc.fsf@logic.at>
<781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com> <242e2f19-536c-48a5-b878-25a5203784dfn@googlegroups.com>
<e3e3ff06-25e4-402d-aee2-9b6cc7a55c44n@googlegroups.com> <c06d38ce-e0bc-41cf-a047-31329c129a18n@googlegroups.com>
<922650d6-1ca0-4cd1-8792-e5a5a9382dd7n@googlegroups.com> <9eddc0c6-1e9e-4d89-8486-1a7b6c74db7cn@googlegroups.com>
<db4884ea-268d-4d4b-9e1c-ee8e23d9633cn@googlegroups.com> <776d1dff-fdbc-4f98-ac73-c7b987e66339n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <98ad3212-8093-488e-998d-ebe8e5204c2en@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Fri, 05 Aug 2022 01:01:15 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3297
 by: Mostowski Collapse - Fri, 5 Aug 2022 01:01 UTC

Workers do still synchronously process message
they receive. As a result Ciao cannot send an “abort”
control to a worker, since Ciao Prolog itself inside

the worker is not asyncified. As a result I see one
Worker going down and another Worker comming
up, when I press Abort button in Ciao, and the

dynamic database state is gone. Bye Bye.

BTW: As soon as you have asyncified your Prolog
interpreter, you don't need the single worker anymore.

Mostowski Collapse schrieb am Freitag, 5. August 2022 um 02:58:17 UTC+2:
> Ciao Prologs “State of the Art” is rather the
> night mare of “The Art of loosing State”.
>
> ?- assertz(foo).
> yes
>
> ?- foo.
> yes
>
> ?- repeat, fail.
> { Execution aborted }
>
> ?- foo.
> {ERROR: No handle found for thrown exception error(existence_error(procedure,'user:foo'/0),'user:foo'/0)}
> aborted
>
> https://ciao-lang.org/playground/
>
> I hope SWI-Prolog will not blindly immitate
> every nonsense from Ciao Prolog.

Re: 50 Years of Prolog Nonsense

<fb646080-0f83-4ea0-b102-3a0cf6d0012fn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1603&group=comp.lang.prolog#1603

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ad4:5c8c:0:b0:477:d19:1a44 with SMTP id o12-20020ad45c8c000000b004770d191a44mr4745267qvh.15.1659687408296;
Fri, 05 Aug 2022 01:16:48 -0700 (PDT)
X-Received: by 2002:a25:9885:0:b0:677:36f3:7431 with SMTP id
l5-20020a259885000000b0067736f37431mr4144303ybo.281.1659687407872; Fri, 05
Aug 2022 01:16:47 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Fri, 5 Aug 2022 01:16:47 -0700 (PDT)
In-Reply-To: <98ad3212-8093-488e-998d-ebe8e5204c2en@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <m2sfn6kzuc.fsf@logic.at>
<781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com> <242e2f19-536c-48a5-b878-25a5203784dfn@googlegroups.com>
<e3e3ff06-25e4-402d-aee2-9b6cc7a55c44n@googlegroups.com> <c06d38ce-e0bc-41cf-a047-31329c129a18n@googlegroups.com>
<922650d6-1ca0-4cd1-8792-e5a5a9382dd7n@googlegroups.com> <9eddc0c6-1e9e-4d89-8486-1a7b6c74db7cn@googlegroups.com>
<db4884ea-268d-4d4b-9e1c-ee8e23d9633cn@googlegroups.com> <776d1dff-fdbc-4f98-ac73-c7b987e66339n@googlegroups.com>
<98ad3212-8093-488e-998d-ebe8e5204c2en@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <fb646080-0f83-4ea0-b102-3a0cf6d0012fn@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Fri, 05 Aug 2022 08:16:48 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 5083
 by: Mostowski Collapse - Fri, 5 Aug 2022 08:16 UTC

Question was, what means syncify?

It means that you turn your Prolog interpreter into an Engine
that can yield, but that you also have some auto-yielding.
So that the the browser or node.exe can process operating

system tasks while the Prolog system is running. Basically the
JavaScript async/await is an extended iterator code rewriting
of a form of yield, which yields promises. If you take this path

you would also need to extended the engine concept so that
you can voluntarily yield promises, like for example for a fetch.
In such a scenario the Prolog system might appear to block,

this is the other illusion the asyncification can create. Basically
you can create the following illusions by asyncification
without the need of a pre-emptive scheduler:

- Non-blocking parallelism between Prolog system and operating system
- Blocking wait for completion of some operating system tasks

Optionally you can also use it for multiple Prolog threads, but
I don’t see a point in doing this. So I branded this “misuse”.
But you could do this as well and it has certainly some use

cases if the multiple Prolog threads do a lot of operating
system tasks. But it is missing in the above list for the moment,
so conceptionally there are only “two” co-routines the single

threaded Prolog system and the operating system tasks event
loop provided by the browser or node.exe. In the same way its
possible to make a Python variant of such an engine.

Mostowski Collapse schrieb am Freitag, 5. August 2022 um 03:01:16 UTC+2:
> Workers do still synchronously process message
> they receive. As a result Ciao cannot send an “abort”
> control to a worker, since Ciao Prolog itself inside
>
> the worker is not asyncified. As a result I see one
> Worker going down and another Worker comming
> up, when I press Abort button in Ciao, and the
>
> dynamic database state is gone. Bye Bye.
>
> BTW: As soon as you have asyncified your Prolog
> interpreter, you don't need the single worker anymore.
> Mostowski Collapse schrieb am Freitag, 5. August 2022 um 02:58:17 UTC+2:
> > Ciao Prologs “State of the Art” is rather the
> > night mare of “The Art of loosing State”.
> >
> > ?- assertz(foo).
> > yes
> >
> > ?- foo.
> > yes
> >
> > ?- repeat, fail.
> > { Execution aborted }
> >
> > ?- foo.
> > {ERROR: No handle found for thrown exception error(existence_error(procedure,'user:foo'/0),'user:foo'/0)}
> > aborted
> >
> > https://ciao-lang.org/playground/
> >
> > I hope SWI-Prolog will not blindly immitate
> > every nonsense from Ciao Prolog.

Re: 50 Years of Prolog Nonsense

<6c22406d-adb5-4116-8b4d-8c406959741an@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1604&group=comp.lang.prolog#1604

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ae9:e702:0:b0:6b5:9c37:8b23 with SMTP id m2-20020ae9e702000000b006b59c378b23mr4324905qka.511.1659687586068;
Fri, 05 Aug 2022 01:19:46 -0700 (PDT)
X-Received: by 2002:a25:b9c3:0:b0:668:a418:13c with SMTP id
y3-20020a25b9c3000000b00668a418013cmr4177896ybj.498.1659687585686; Fri, 05
Aug 2022 01:19:45 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Fri, 5 Aug 2022 01:19:45 -0700 (PDT)
In-Reply-To: <fb646080-0f83-4ea0-b102-3a0cf6d0012fn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.218.40.218; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 80.218.40.218
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<c94e6149-d42c-481c-ace9-d81108d6f786n@googlegroups.com> <b852be37-8238-4ef0-9c96-3381c7f92487n@googlegroups.com>
<f0d280e5-5b2d-4170-aaad-39e1bd109939n@googlegroups.com> <5b00dab0-832f-4fbe-b319-3d459d856e53n@googlegroups.com>
<d5981258-7636-4545-9835-b428d67d4326n@googlegroups.com> <1acaa5f3-171d-4417-bd41-32a9578db900n@googlegroups.com>
<b5c64f15-9b88-4b90-9c2e-91055c7eb63fn@googlegroups.com> <3cafa634-538b-40a3-a4a9-2f68abf240f5n@googlegroups.com>
<a9db6e9e-f0e8-49e0-9126-d14b9073ec58n@googlegroups.com> <m2sfn6kzuc.fsf@logic.at>
<781b5836-4c51-4a7e-a074-85fa4ab490fbn@googlegroups.com> <242e2f19-536c-48a5-b878-25a5203784dfn@googlegroups.com>
<e3e3ff06-25e4-402d-aee2-9b6cc7a55c44n@googlegroups.com> <c06d38ce-e0bc-41cf-a047-31329c129a18n@googlegroups.com>
<922650d6-1ca0-4cd1-8792-e5a5a9382dd7n@googlegroups.com> <9eddc0c6-1e9e-4d89-8486-1a7b6c74db7cn@googlegroups.com>
<db4884ea-268d-4d4b-9e1c-ee8e23d9633cn@googlegroups.com> <776d1dff-fdbc-4f98-ac73-c7b987e66339n@googlegroups.com>
<98ad3212-8093-488e-998d-ebe8e5204c2en@googlegroups.com> <fb646080-0f83-4ea0-b102-3a0cf6d0012fn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6c22406d-adb5-4116-8b4d-8c406959741an@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Fri, 05 Aug 2022 08:19:46 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 6606
 by: Mostowski Collapse - Fri, 5 Aug 2022 08:19 UTC

It was two questions already, or a different question altogether,
namely asking for WASM as well.

Disclaimer: Oh my, I invented the word “asyncify” spontanously
yesterday. But it has also some meaning in relation to WASM.
My previous portraying is from experience with CheerpJ, Tau-

Prolog and Dogelog, and only CheerpJ has WASM (the recent
version using 64-bit). Maybe for more WASM specific questions
you need to consult other source, I find for example:

https://web.dev/asyncify/

Possibly when the above community is talking about asyncification
it has a total different meaning then what I described. Attention! Attention!

Also CheerpJ comes without auto-yielding. You can add it
yourself, by calling Java Thread.yield(), it was an undocumented
feature of CheerpJ. But in CheerpJ I could not yield promises so

easily, maybe there is an exotic Java API, and then there
is a danger that CheerpJ doesn’t support it, since it is rather
tailord towards bringing some convetional Swing/Standalone

applications to the web, so this is a specific new feature of the
Dogelog engine, breaking out of a particular Java world.

Mostowski Collapse schrieb am Freitag, 5. August 2022 um 10:16:49 UTC+2:
> Question was, what means syncify?
>
> It means that you turn your Prolog interpreter into an Engine
> that can yield, but that you also have some auto-yielding.
> So that the the browser or node.exe can process operating
>
> system tasks while the Prolog system is running. Basically the
> JavaScript async/await is an extended iterator code rewriting
> of a form of yield, which yields promises. If you take this path
>
> you would also need to extended the engine concept so that
> you can voluntarily yield promises, like for example for a fetch.
> In such a scenario the Prolog system might appear to block,
>
> this is the other illusion the asyncification can create. Basically
> you can create the following illusions by asyncification
> without the need of a pre-emptive scheduler:
>
> - Non-blocking parallelism between Prolog system and operating system
> - Blocking wait for completion of some operating system tasks
>
> Optionally you can also use it for multiple Prolog threads, but
> I don’t see a point in doing this. So I branded this “misuse”.
> But you could do this as well and it has certainly some use
>
> cases if the multiple Prolog threads do a lot of operating
> system tasks. But it is missing in the above list for the moment,
> so conceptionally there are only “two” co-routines the single
>
> threaded Prolog system and the operating system tasks event
> loop provided by the browser or node.exe. In the same way its
> possible to make a Python variant of such an engine.
> Mostowski Collapse schrieb am Freitag, 5. August 2022 um 03:01:16 UTC+2:
> > Workers do still synchronously process message
> > they receive. As a result Ciao cannot send an “abort”
> > control to a worker, since Ciao Prolog itself inside
> >
> > the worker is not asyncified. As a result I see one
> > Worker going down and another Worker comming
> > up, when I press Abort button in Ciao, and the
> >
> > dynamic database state is gone. Bye Bye.
> >
> > BTW: As soon as you have asyncified your Prolog
> > interpreter, you don't need the single worker anymore.
> > Mostowski Collapse schrieb am Freitag, 5. August 2022 um 02:58:17 UTC+2:
> > > Ciao Prologs “State of the Art” is rather the
> > > night mare of “The Art of loosing State”.
> > >
> > > ?- assertz(foo).
> > > yes
> > >
> > > ?- foo.
> > > yes
> > >
> > > ?- repeat, fail.
> > > { Execution aborted }
> > >
> > > ?- foo.
> > > {ERROR: No handle found for thrown exception error(existence_error(procedure,'user:foo'/0),'user:foo'/0)}
> > > aborted
> > >
> > > https://ciao-lang.org/playground/
> > >
> > > I hope SWI-Prolog will not blindly immitate
> > > every nonsense from Ciao Prolog.


devel / comp.lang.prolog / Re: 50 Years of Prolog Nonsense

Pages:1234567
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor