Learn Prolog Now: Request for contribution

Links I seem to constantly be looking up.

Learn Prolog Now (GitHub) (Site) (LaTeX) (PDF) (License) (CC BY-SA 4.0)
Learn Prolog Now with SWISH (Site)
LPN proxy server (GitHub)
Learn Prolog Now - PrologHub version (Site) (GitHub)
LogTalk (Site) (Documentation)

1 Like

Feel free to ask questions. I’m also glad to create some demo for a task you deem useful.

2 Likes

The vast majority of the attendees in my classes are experienced programmers.

The most difficult part of learning prolog for them is learning the basic SLD resolution algorithm, and learning to think in logic terms.

Honestly, people who don’t know another language usually learn the basics more rapidly.

I have a slightly different take on that.

Those that know languages with mutable state have a harder time than those that only know a language with immutable state, e.g. purely functional languages.

Curious if you would find that true?

1 Like

functional programmers try to make Prolog a fIunctional language.
Imperative programmers try to make Prolog an imperative language.

4 Likes

The funniest ones to me are the imperative OOP programmers who try to make Prolog an imperative language using unholy combinations of compound terms with association lists inside for the members.

I nearly had an aneurysm when someone suggested that a while back.

The first question anyone unfamiliar programming language wants to know is “what can it do?”. For C++, the answer is create first-person shooters like Doom, and I don’t think the importance of Doom to C++'s popularity can be underestimated.

There’s no similar killer app written in Prolog that I know of, creating a common misconception that Prolog is a solution looking for a problem, which I blame the commonly recommended textbooks for.

Appologies to PaulBrownMagic for not lending a hand with his very important project of putting Learn Prolog Now! online for SWI Prolog novices. The lack of good learning material has been a key gripe of mine, and think it’s a key weakness that needs to be made a priority.

Unfortunately, I’m about six months behind on the project I’m working on. My last distraction before knuckling down is completing Leslie Lamport’s TLA+ tutorials which start at http://lamport.azurewebsites.net/video/intro.html

Though the syntax of TLA+ is totally different to Prolog, Lamport explains the concepts of logic programming far better than any Prolog book I’ve read (The Art of Prolog, The Craft of Prolog, Bratko and LPN!), so I highly recommend his course to anyone wanting to get to grips with this style of programming.

2 Likes

It’s alright, it’ll just take longer is all. I’m almost a quarter of the way through it now. Still finding new features to introduce along the way. Right now the code blocks are bugging me, wouldn’t it be nice if they were <code><pre> blocks that’d have syntax highlighting but when clicked for editing transformed into the <textarea> that they currently are.

I understand, none of us have much spare time: we’re a small community with big dreams. I just spend an hour or two on this on a quiet evening when I’m tired (currently it’s at a data entry stage, doesn’t require much thought!)

3 Likes