Here's a more personal perspective. I first learned Prolog 15 ish years ago, in the second year of my CS (with games design) degree. The difficulty hit me like a ton of bricks. With no exaggeration it took me a week to figure out how to do the simplest of things: cycle through a list of options (those were the turn phases for a Magic: the Gathering game engine. Nobody ever accused of starting with the easy stuff first). I persevered partly because the idea of executing First Order Logic theorems as a computer program took my breath away and partly because everyone agreed that Prolog was so damn hard and I just wanted to brag about being able to learn it to my peers.
I learned it. It took years. I don't think I had the chance to brag to my peers. I went to the university library and picked up every textbook I could find on Prolog, returned home with knees trembling under the weight of my backpack bulging at the seams with K N O W L E D G E and spent weeks lost in them. The more I learned, the more I forgot about bragging and the more I got hooked, like a fool who tries crack for just the one time. The more I used Prolog, the more it hurt me, the more I couldn't understand it, the more I finally got it, the more I got drawn in, deeper and deeper.
It took a few years before I could indulge my passion and follow what our Dang would call my intellectual curiosity, and start a PhD on Inductive Logic Programming (i.e. machine learning × logic programming) but I finally got my wish and like I say above, I've basically done all my programming in Prolog as a day job for the last 6 years or so, with a smattering of Python and R in between.
And now I'm out of a job and I might have to go back to C# and SQL. But, it was good while it lasted. If you want to go on an adventure of the mind, don't put it off. You won't regret it. Find your own Prolog. Go. Go!
If you have a bit of time to translate the problems I was talking about from french to english here they are for example: (2022 - exercise 3) [0] solution [1], directory of past exams[2]
Mmouais, quesque j'ai dit? C'est pas comme ça qu' on represente les matrices en Prolog. Pas comme une liste mais comme un terme qu' on utilise comme un tableau 2d (array) en row-major ordre. Sinon c'est le bordel.
haha wasn't expecting the french response. I wish I spoke it that well. But yeah, the university I was in (usthb) is notorious (in algeria) for having the most difficult exams so stuff like this is expected
I learned it. It took years. I don't think I had the chance to brag to my peers. I went to the university library and picked up every textbook I could find on Prolog, returned home with knees trembling under the weight of my backpack bulging at the seams with K N O W L E D G E and spent weeks lost in them. The more I learned, the more I forgot about bragging and the more I got hooked, like a fool who tries crack for just the one time. The more I used Prolog, the more it hurt me, the more I couldn't understand it, the more I finally got it, the more I got drawn in, deeper and deeper.
It took a few years before I could indulge my passion and follow what our Dang would call my intellectual curiosity, and start a PhD on Inductive Logic Programming (i.e. machine learning × logic programming) but I finally got my wish and like I say above, I've basically done all my programming in Prolog as a day job for the last 6 years or so, with a smattering of Python and R in between.
And now I'm out of a job and I might have to go back to C# and SQL. But, it was good while it lasted. If you want to go on an adventure of the mind, don't put it off. You won't regret it. Find your own Prolog. Go. Go!