From the hub
Predicate semantics
This post is external to PrologHubLogtalk inherits but also extends and improves Prolog predicate semantics to provide clear and uniform closed world semantics, support protocols, provide consistent meta-predicate semantics, prevent misusing of multifile predicates, and prevent a number of hacks based on predicate directives that would break encapsulation. This post discusses...
Homoiconic Prolog: Explain yourself!
Prolog is rather popular for Expert Systems. Why? Well because it's homoiconic and because we have DCG's, we can reify a query to make it explain itself. That's a lot of jargon, in this post we'll break it down and make some explanations.
Difference Lists Explored
Difference Lists are a very powerful and useful tool. They're also difficult to understand and can result in difficult to read code. In this post we'll address both of these issues.
Functional Prolog: Map, Filter and Reduce
Prolog programs have both logical and procedural meanings. In this post we'll take a look at procedural ideas more commonly associated with functional programming than Prolog, namely: map, filter and reduce (foldl and foldr). We'll code them and then query them.
Prolog Fundamentals Catchup
This post is external to PrologHubThree Prolog fundamentals that I wish I'd understood earlier
Tips on planning, documenting, and testing a SWI-Prolog project
In the process of developing a fairly large SWI-Prolog project, I've developed some experience at using PlDoc — which actually goes beyond being an automated documentation system, doubling as an integrated development environment — and PlUnit, which I'll share here.
A Prolog Language Server
This post is external to PrologHubAnnouncing my Prolog LSP implementation and discussing how it was implemented