The Clause is an initiative to bring Prolog into the modern web development world. Although Prolog is already quite capable, there is work to be done in writing more documentation, resources, and tutorials that are catered towards the web development industry.
This repo is an accumulation of these efforts. Below you will find resources for learning and using Prolog.
If you want to support The Clause and help pave the way forward, you can:
- Join the discussion on gitter.
- Write articles that are relevant to mainstream web developers.
- Follow The Clause on Twitter!
Feel free to ping me on gitter if you have any questions.
- Building a user permissions system (part 1, part 2)
- Setting Up Unit Testing In SWI-Prolog (link)
- Functional Prolog: Map, Filter, and Reduce (link)
- Production Prolog (39:57)
- [0:00] Intro: Prolog has many solid implementations, logic programming is ridiculously simple
- [1:54] Demo: Quick intro to Prolog
- [12:17] Demo of SWI Prolog's incredible debugger
- [16:36] Code is data, which makes writing tools for Prolog very easy
- [18:19] Some libraries the speaker uses in production (library(func), library(mavis), library(bencode))
- [23:01] Constraint logic programming - library(julian) for dates and times. A beauty.
- [26:34] Concurrency - library(spawn). Wow.
- [30:04] Deploying saved states, his favorite production trick.
swipl -o foo -c foo.pl
- [32:18] Not all sunshine and rainbows
- SWI Prolog forums - for deeper discussions and troubleshooting
- Awesome Prolog
- Full-featured online environment (SWI)
- JavaScript-based browser environment
- Prolog cheet sheat
- The Association for Logic Programming for those who are interested in the theoretical side of Prolog. If you're looking to do research and/or a PhD, definitely visit that link!