Sujet : Re: Chicken and egg, with curry?
De : julio (at) *nospam* diegidio.name (Julio Di Egidio)
Groupes : sci.logic comp.lang.prologSuivi-à : comp.lang.prologDate : 03. Jan 2025, 21:37:28
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vl9hq8$3ui38$2@dont-email.me>
References : 1
User-Agent : Mozilla Thunderbird
On 03/01/2025 21:04, Julio Di Egidio wrote:
Partial and tentative:
```
Functional = Closures/applications, Reduction/canonicity
/ |
Logical | = Predicates/queries, Resolution/subsumption
\ |
Imperative = Procedures/invocations, Execution/...
```
And there are two views of that triangle: Logical is the top of the *ideal* such triangle, along the lines of a universe with Prop on top, which we can reason with; Imperative is the bottom of a *concrete* such triangle, the bootstrap as well as the final point of application of any concrete system.
And Logical is the constructive (structural) type-theory founding the Functional, where Functional exists for expressivity and modularity (what else?), plus can be compiled back/down to machine language...
Right?
BTW, there are deficiencies of standard Prolog that are indeed very annoying, to the point that some invoke for the other way round:
HANSEI / Re-thinking Prolog
<
https://okmij.org/ftp/kakuritu/logic-programming.html#vs-prolog>
But, besides that I would not put logic in terms of "guessing", I'd propose we just need a Prolog that doesn't have the self-inflicted quirks: a strengthened resolution with declarative determinism and indexing, and a strengthened semantics, of variables and/vs open terms, with a partial order of terms by subsumption, and unifiability as comparability (a purely structural type system definitionally), i.e. where a variable is the most general term... Or something like that.
No?
-Julio