> On Oct 13, 2017, at 3:01 PM, Luis Marcelo Rosso wrote:
>
> Hi all,
>
> I am porting the Prolog interpreter shown in Peter Norvig's classic text on
> AI, "Paradigms of Artificial Intelligence Programming: Case Studies in Common
> Lisp 1st Edition",
> https://www.amazon.com/Paradigms-Artificial-Intelligence-Programming-Studies/dp/1558601910/,
> also known as PAIP, in its chapter 11, "Logic Programming".
>
> I have just ended its first version, corresponding to section 11.2, and
> shared:
> the code at https://github.com/promesante/paip-racket/
> the experience in
> https://promesante.github.io/2017/10/12/porting_paips_prolog_interpreter_from_common_lisp_to_racket/
>
> Enhancement suggestions more than welcome.
Thanks for sharing.
Implementing a Prolog (in Scheme 84) was also my first adventure into the world
of
parentheses. The year was 1984 and it was a ton of fun. Someone scanned it in
eventually (because I lost all my sources when I moved here from Rice):
https://www2.ccs.neu.edu/racket/pubs/#tr182-f
If you take a look, it is _not_ an interpreter but a compiler from Prolog to
().
Dorai S.’s Racklog implementation of Prolog is an extension of this work.
;; - - -
Having said that, you wrote that you wanted to explore Racket because it is a
a “language hothouse” (a slogan we used for a while). Your interpreter-based
Prolog implementation is not what we meant with that. You could indeed
implement this interpreter in any old language in a straightforward manner. What
we do mean is the macro-based approach, which allows a short-and-sweet
transpiler
from here to there (for some value of here and there).
Keep pushing — Matthias
--
You received this message because you are subscribed to the Google Groups
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.