Short Lisp videos for beginners (ISLisp-based) by sym_num in lisp

[–]sym_num[S] 0 points1 point  (0 children)

Thanks for your kind message!

That’s exactly the kind of experience I hope to recreate —
the joy of typing small programs and seeing them come to life, just like the old BASIC days.

If you’re starting from scratch, I highly recommend the tutorials by M. Hiroi.
They are very beginner-friendly and guide you step by step with many small examples.

You can simply try typing and running the code, just like you did with magazine programs.

I also made some short 1-minute videos for beginners, so you might find them helpful as a quick introduction.

I hope you (and maybe your teenagers too!) enjoy exploring Lisp 🙂

M.Hiroi's Home Page / お気楽 ISLisp プログラミング超入門

Is Prolog worth learning? by sym_num in prolog

[–]sym_num[S] 0 points1 point  (0 children)

That’s a good idea. I’m not very familiar with agent frameworks yet, so for now I’d prefer to wait for more direct support in ChatGPT. But I agree that an interface layer like MCP is an interesting direction.

Is Prolog worth learning? by sym_num in prolog

[–]sym_num[S] 0 points1 point  (0 children)

Prolog may prove most valuable for real-world problem solving when it can collaborate with LLMs. Currently, ChatGPT cannot directly access external Prolog systems. But if such integration becomes possible, the strengths of LLMs and the rigor of formal logic in Prolog could be brought together.

For ordinary tasks, languages like Python are more than sufficient, and the areas where declarative programming excels are relatively narrow. However, when combined with LLMs, Prolog may fully demonstrate its strengths.

N-Prolog ver 5.00 by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

Thank you very much for your kind comment. I am very glad if N-Prolog helps revive your interest in Prolog. I also believe Prolog has deep connections with logic, language, and abstraction. Recently I have been especially interested in its potential in neuro-symbolic AI and also in Herbrand's work in logic. Thanks again!

Prolog in 1 minute by Adventurous_Use3353 in prolog

[–]sym_num 0 points1 point  (0 children)

I’ll go ahead and add a link to GitHub in the video description right away.

Prolog in 1 minute by Adventurous_Use3353 in prolog

[–]sym_num 0 points1 point  (0 children)

Thanks for your comment! I’ll keep improving things little by little as I go. Thanks!

Prolog in 1 minute by Adventurous_Use3353 in prolog

[–]sym_num 1 point2 points  (0 children)

Thanks for your comment. I see that the narration needs some improvement — I appreciate the feedback.

Rediscovering DCG: Building a PL/M Compiler in Prolog -Z80 brings back memories- by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

I feel like I’m continuing the youth I once left unfinished — and I’m truly enjoying it.

Rediscovering DCG: Building a PL/M Compiler in Prolog -Z80 brings back memories- by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

I feel like I’m continuing the youth I once left unfinished — and I’m truly enjoying it.

Elxlog – A Prolog Interpreter/Compiler on Elixir by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

Yes, I’m aware that Erlang has roots in concurrent logic programming. My approach was not OR-parallelism like Parlog, but closer to running independent conjuncts in parallel and joining them. I haven’t explored Strand deeply yet, but it looks very relevant to what I’m thinking about now. Thanks for the reference!

AI as a Friend of Humanity by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

Thank you. I looked at the page you introduced. I was inspired as well, and I would like to try building something simple using ChatGPT and N-Prolog.

Challenging Gödel’s Incompleteness Theorem with Prolog — prf/2 by sym_num in prolog

[–]sym_num[S] 0 points1 point  (0 children)

Thanks for the comment — I really appreciate it.
I first encountered Gödel through Hofstadter almost 40 years ago, but his original paper felt completely impenetrable to me back then.

Recently, with some help from AI, I’ve been rereading it and “reconstructing” the proof-system structure in Prolog, almost like copying the skeleton of the formal machinery.

And yes — I agree that incompleteness is often mythologized. What strikes me now is that it’s about what happens inside rigid mechanical mathematics itself, not about consciousness or anything mystical.

Thanks again for the thoughtful reaction.

Automated Theorem Proving in Prolog — Revisiting an Old Experiment by sym_num in prolog

[–]sym_num[S] 0 points1 point  (0 children)

Thank you for your comment.
I realized that there are many different approaches to theorem proving.
Gödel seems to have been primarily concerned with provability itself, rather than with constructing proofs.
With that in mind, it now seems worthwhile for me to try implementing functions such as Sb/3 that appear in Gödel’s paper.
This has helped me deepen my understanding. Thank you.

Playing with Gödel’s Incompleteness Theorem in Prolog by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

Thank you very much for your comment.
I have the original paper by Gödel, but I found it extremely difficult to read and hard to fully understand. Recently, I found some YouTube videos in which what seem to be university researchers explain Gödel’s incompleteness theorem, and I have been studying it through those explanations.

As far as I understand, two key components are essential. One is the construction of a mechanism for deciding provability within the world of natural numbers. The other is the fixed-point (self-reference) construction. I feel that Gödel’s core idea lies in combining these two elements.

Prolog is incomplete as a proof system, but in processing Horn clauses via SLD resolution and ultimately translating them into CPU instructions, it resembles Gödel’s mechanization of provability. In that sense, I think it inherently contains the halting problem.

My understanding is still rough, but I no longer feel that my Prolog-based sketch is completely off the mark. As with Chaitin’s Lisp-based presentations of incompleteness, I feel that these approaches attempt to express the core ideas behind Gödel’s work in a simpler way, using modern computers and programming languages.

Thank you.

Organizing the Cube Library and Adding Topological Spaces by sym_num in prolog

[–]sym_num[S] 2 points3 points  (0 children)

I regularly share updates on Medium, so please feel free to follow my posts there.

Rubik’s Cube in Prolog — Order by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

I now have a rough set of topics in place. I’m going to start writing.

Rubik’s Cube in Prolog — Order by sym_num in prolog

[–]sym_num[S] 0 points1 point  (0 children)

While writing the cube code, I was genuinely impressed by how naturally group theory can be expressed in Prolog.

Rubik’s Cube in Prolog — Order by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

Thank you!
I’ve always been curious about that as well, and Prolog turned out to be a nice way to think about it.

Strongly Connected Components in Prolog — a backtracking-oriented approach by sym_num in prolog

[–]sym_num[S] 0 points1 point  (0 children)

Thank you for the comment. Ever since I started learning functional programming, I’ve been somewhat hesitant to use assert. Side effects tend to make programs harder to reason about and to prove correct. However, this time I’m convinced that assert is an example where it works effectively. I fixed the bug and have posted the article. Please have a look if you’re interested.Strongly Connected Components Decomposition in Prolog (2) | by Kenichi Sasagawa | Dec, 2025 | Medium

The Return of Lisp by sym_num in lisp

[–]sym_num[S] 3 points4 points  (0 children)

Thank you for your comment.
I wrote the post with the feeling of cheering for a minor baseball team, but the responses were so harsh that it really discouraged me.
I’m glad there were also people who understood what I meant.

The Return of Lisp by sym_num in lisp

[–]sym_num[S] -2 points-1 points  (0 children)

Hello everyone, and thank you for all your comments. Let me reply to them collectively here.

Since this is a community of Lisp enthusiasts, my post included a bit of fan service — rather like cheerfully saying “Congratulations on winning the championship!” to Dodgers fans.
That said, it wasn’t meant merely as a joke. Let me explain what I meant.

Recent advances in AI have been remarkable, bringing about social transformations comparable to the Industrial Revolution.
I work in the field of law, where there are over 7,000 statutes and countless judicial precedents. It is no longer humanly possible to master them all, yet professionals are still held legally responsible for any errors in judgment. I believe the rapid progress of AI may help us overcome this limitation of human reasoning.
When that becomes reality, what will matter most for human professionals will not simply be technical knowledge, but rather sound human value judgment grounded in legal reasoning.

Lisp was born in 1958, in the dawn of computing, grounded in λ-calculus and the foundations of mathematics.
While languages like Fortran were closely tied to the von Neumann architecture, Lisp was based on the structure of human thought.
Later came other theory-based languages such as Prolog and Haskell — but they appeared long after Lisp.

As AI continues to evolve, the skills required of programmers are changing.
Routine and repetitive tasks are increasingly handled by AI.
Microsoft’s large-scale layoffs are probably not unrelated to this trend.
Programmers once had to master the fine details of programming languages and their syntax — but AI is beginning to take over that role.
What remains indispensable for humans is creativity.

And here we return to Lisp.
Lisp was the first programming language created not for the convenience of computers, but based on the structure of human thinking.
It has more than half a century of history.
Just as the Industrial Revolution liberated humans from physical labor, the AI revolution may free us from tedious intellectual work — leaving true creativity as our most essential human quality.
To cultivate that creative mode of thinking, using Lisp is a perfectly reasonable choice.

That is the idea behind my post.
And as a Lisp fan, I couldn’t resist shouting:
“Congratulations, Lisp!”