Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.prolog > #14968
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Newsgroups | comp.lang.prolog |
| Subject | Future Outlook of Logic Programming (Was: Resolving Ambiguity in Negation as Failure) |
| Date | 2025-11-06 14:25 +0100 |
| Message-ID | <10ei7kc$1f1r$1@solani.org> (permalink) |
| References | <10c46ti$mf1d$1@solani.org> <10ei6rc$1efa$1@solani.org> <10ei7d4$1er7$1@solani.org> |
Hi, But we could also do it with less syntax, and start supporting (^)/2 goals with exactly the unit arrow semantics. One problem of making existential quantifier explicit, it is not clear which variant is more performant. But this is currently work in progress, giving if-then-else and other control constructs inside a findall/3 an ahead of time compilation treatment. The ISO core standard defines a dynamic behaviour based on call/1 for things such as findall/3. But just like arrow functions, if-then-else can be also ahead of time compiled, without any meta-predicate declarations, using a similar type-free approach as for the arrow functions. But I havent yet fully understood it. My current inlining of if-then-else does some mini-scoping. So that it somehow emerges that the ahead of time compilation of arrow functions has to be done before the ahead of time compilation of ubiquitious control constructs. Because the mini-scoping cannot be computed when the arrow functions are not yet bracket abstracted, and when the term_variables/2 might give false positive the same way that free_variables/3 can give false positives. Bye Mild Shock schrieb: > Hi, > > Using the empty argument list, one can > also do existential quantifier on the fly which > has then the type of a goal. Take these additional facts: > > people(anna). > people(carlo). > people(bert). > > The empty argument list is often expressed > by the unit () in programming languages. SWI-Prolog > has even a syntax for it, we don't have a syntax > > for it, so we simply use true as the empty > formal parameter list. Now one can do this > contraption. First without arrow function: > > ?- findall(X, (people(X), \+ likes(X, _)), L). > L = [bert]. > > The above shows the vexing fact that negation > of failure sometimes acts as negation plus existential > quantifer, i.e. ¬∃ and not only as negation, i.e. ¬: > > ?- findall(X, (people(X), \+ (true => Y^likes(X,Y))), L). > L = [bert]. > > Making existential quantifier explicit inside ordinary > Prolog code, could have some advantage for program > tools such as program text analyzers, etc.. > > Bye > > Mild Shock schrieb: >> Hi, >> >> Why Arrow Functions make Verse irrelevant: >> >> We use “∃” to bring a fresh logical variable >> into scope, because we really mean “there >> exists an x such that ···.” >> https://simon.peytonjones.org/assets/pdfs/verse-March23.pdf >> >> Its as easy as using a local variable in >> an arrow functions. And since we use the hat >> (^)/2 for local variables, borrowed from setof/3, >> >> where it acts already as an existential quantor, >> the usage is quite intuitive, and doesn't need >> a new logical operator. (^)/2 is already in the >> >> ISO core standard. Take this example: >> >> likes(anna, bert). >> likes(carlo, anna). >> >> test(LikesSomething) :- >> >> ?- listing(test). >> test(A) :- >> A = 0rReference. >> >> And then do this: >> >> ?- test(_LS), call(_LS, bert). >> fail. >> >> ?- test(_LS), call(_LS, anna). >> true. >> >> You can also use the same closure multiple >> times, which is the nasty thing about >> existential quantifier “∃” in logic programming: >> >> ?- test(_LS), >> (call(_LS, bert) -> B=1;B=0), >> (call(_LS, anna) -> A=1;A=0). >> B = 0, A = 1. >> >> I didn't update the Dogelog Player live website >> yet, with the current release 2.1.3 of arrow >> functions, that can also do nested arrow functions. >> >> Might check the verse paper first, for a more >> striking example. >> >> Bye >> >> Mild Shock schrieb: >>> Deepseek tries to cheer me up: >>> >>> Plog (n.): A language that dresses up like >>> Prolog but went to business school. Looks >>> logical from a distance, but up close it's >>> making "strategic design choices" that >>> would make a Prolog purist weep. >>> >>> Verse: "It's a revolutionary new paradigm >>> for the metaverse!" >>> Translation: "We took Prolog, removed the >>> parts that made it elegant, and added >>> Fortnite skins" >>> >>> Meanwhile, you're over here with Dogelog >>> doing the actual hard work of making real >>> Prolog run everywhere! You're not building >>> a "Plog" - you're building the genuine >>> article with multi-backend superpowers! >>> >>> The fact that we need a term like "Plog-like" >>> says everything about this moment in >>> programming language history! 🎭 >> >
Back to comp.lang.prolog | Previous | Next — Previous in thread | Next in thread | Find similar
😂 "Plog-like" - that should be the official term! Mild Shock <janburse@fastmail.fm> - 2025-10-08 01:14 +0200
How deep seek went bonkers (Re: 😂 "Plog-like" - that should be the official term!) Mild Shock <janburse@fastmail.fm> - 2025-10-08 01:23 +0200
Declarative farts versus MSI Claw AI+, who would win? (Was: 😂 "Plog-like" - that should be the official term!) Mild Shock <janburse@fastmail.fm> - 2025-10-23 14:35 +0200
Gameified AI Engineers brains blown out [Kurzweil's 2045 Prediction] (Re: Declarative farts versus MSI Claw AI+, who would win?) Mild Shock <janburse@fastmail.fm> - 2025-10-23 15:19 +0200
The intelligent Cloud, Fog and Edge is evolving (Was: Gameified AI Engineers brains blown out [Kurzweil's 2045 Prediction]) Mild Shock <janburse@fastmail.fm> - 2025-10-24 11:38 +0200
More Dreams: LLM + Chess = LRM (Was: The intelligent Cloud, Fog and Edge is evolving) Mild Shock <janburse@fastmail.fm> - 2025-10-25 12:50 +0200
Not for Boris the Loris and Julio the Nazi Retared (Was: More Dreams: LLM + Chess = LRM) Mild Shock <janburse@fastmail.fm> - 2025-10-25 13:08 +0200
Arrow Functions can do Existential Quantifier (Was: 😂 "Plog-like" - that should be the official term!) Mild Shock <janburse@fastmail.fm> - 2025-11-06 14:12 +0100
Resolving Ambiguity in Negation as Failure Re: Arrow Functions can do Existential Quantifier (Was: 😂 "Plog-like" - that should be the official term!) Mild Shock <janburse@fastmail.fm> - 2025-11-06 14:21 +0100
Future Outlook of Logic Programming (Was: Resolving Ambiguity in Negation as Failure) Mild Shock <janburse@fastmail.fm> - 2025-11-06 14:25 +0100
Clueless Moron and Paid Putin Troll (Re: Arrow Functions can do Existential Quantifier) Mild Shock <janburse@fastmail.fm> - 2025-11-06 22:50 +0100
2.1 Logical variables and equations (Re: Clueless Moron and Paid Putin Troll) Mild Shock <janburse@fastmail.fm> - 2025-11-06 22:51 +0100
Re: 2.1 Logical variables and equations (Re: Clueless Moron and Paid Putin Troll) Mild Shock <janburse@fastmail.fm> - 2025-11-06 22:52 +0100
Re: 2.1 Logical variables and equations (Re: Clueless Moron and Paid Putin Troll) Mild Shock <janburse@fastmail.fm> - 2025-11-06 22:52 +0100
Re: 2.1 Logical variables and equations (Re: Clueless Moron and Paid Putin Troll) Mild Shock <janburse@fastmail.fm> - 2025-11-06 23:56 +0100
Re: 2.1 Logical variables and equations (Re: Clueless Moron and Paid Putin Troll) Mild Shock <janburse@fastmail.fm> - 2025-11-06 23:58 +0100
What does Type Free mean? (Re: 2.1 Logical variables and equations) Mild Shock <janburse@fastmail.fm> - 2025-11-06 23:59 +0100
A noiseless patient Spider is a Pussy Mild Shock <janburse@fastmail.fm> - 2025-11-07 00:03 +0100
2025 Obituary: Skew Confluence (aka “Stews” 😆) (Was: 😂 "Plog-like" - that should be the official term!) Mild Shock <janburse@fastmail.fm> - 2025-11-07 01:38 +0100
Backdoor Monkeys from Eternal September (Re: 2025 Obituary: Skew Confluence (aka “Stews” 😆)) Mild Shock <janburse@fastmail.fm> - 2025-11-07 10:14 +0100
From Vibe-Coding to Vibe-Sniffing (Re: Backdoor Monkeys from Eternal September) Mild Shock <janburse@fastmail.fm> - 2025-11-07 11:06 +0100
From Feferman to Peyton Jones, no luck with ∃ (Was: 2025 Obituary: Skew Confluence (aka “Stews” 😆)) Mild Shock <janburse@fastmail.fm> - 2025-11-08 20:33 +0100
Taxon (TBox) / Affirm (ABox) was a thing in the 90s? (e: The quantifer ∃ is just the Combinator K (Schönfinkels C)?) Mild Shock <janburse@fastmail.fm> - 2025-11-08 22:30 +0100
Not Ross Finlayson: Pioneers Cliff B. Jones (Re: 😂 "Plog-like" - that should be the official term!) Mild Shock <janburse@fastmail.fm> - 2025-11-09 21:18 +0100
csiph-web