Remix.run Logo
andai 9 hours ago

What are the odds :) I made this two weeks ago, also with Claude.

This one's a straight port, paip-python's[0] Prolog interpreter. (Itself based on Norvig's Paradigms of Artificial Intelligence Programming book, originally in Lisp.)[1]

https://github.com/a-n-d-a-i/prolog.js

It was in the web ui, so I expected it to give me a code block, but it spun up a vm, set up a npm project, generated tests... ran them. I was quite surprised.

Your version is the opposite of mine, in a very good way. Your one is mostly tests! My version's tests are... well, you'll see ;)

Both are surprisingly short. 700-ish for mine, ~1200-ish for yours (as far as the actual interpreter goes), right?

That seems like a lot of bang per buck for something as powerful as a Prolog interpreter! I don't know very much about Prolog though, so maybe there's a lot of crucial parts missing here.

At any rate the original is a teaching device, and the book[1] goes into some length on the limitations of Prolog, both this version and in general.

[0] Original source in Python: https://github.com/dhconnelly/paip-python

[1] Original original source in Lisp: https://norvig.github.io/paip-lisp/#/chapter11

AdieuToLogic 8 hours ago | parent [-]

> I don't know very much about Prolog though, so maybe there's a lot of crucial parts missing here.

An easy way to find out if your implementation works is to try out the `likes.pl`[1] example found in the SWI-Prolog "Getting started quickly"[0] documentation.

0 - https://www.swi-prolog.org/pldoc/man?section=quickstart

1 - https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/mas...