Show HN: Vibe Prolog
github.comLike a lot of people I got the $250 Claude Code credit and didn't use it up.
I decided to try to use it up over the weekend using (mostly) my phone and vibe coded a Prolog interpreter.
Now I'm seeing how far I can push it.
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...
Here's an idea.
There have been over a dozen commits in the last 2 hours. If you are actually "vibe coding" a Prolog, then post the prompts you have used in the last 2 hours here.
If it helps to have a specific starting point, commit 7bbe652[0] is as good as any.
0 - https://github.com/nlothian/Vibe-Prolog/commit/7bbe652eaf0b0...
If the project is about testing Claude's capabilities, the prompts will be more interesting to have.
It's not like it's a single shot generation or anything.
>> If the project is about testing Claude's capabilities, the prompts will be more interesting to have.
> It's not like it's a single shot generation or anything.
Since you've submitted a "Show HN: Vibe Prolog" and shared in the repo:
The GP's observation of the prompts being highly relevant is substantiated. Arguably even more so than the Python code committed.Especially since there have been 82 commits in the span of 3 days.
EDIT:
And I am really interested in how you "vibe coded" the commit[0] which made this singular change:
0 - https://github.com/nlothian/Vibe-Prolog/commit/0bf4beba70dea...I do not think that [0] was vibe coded. Vibe coding something does not mean that everything is vibe coded, or at least I would have never expected it to be the case.
Have you considered asking for a version in assembly?
Not really. Do you mean targetting assembly output or written in assembly?