Comment by andai
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
> 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...