InnerAlien

InnerAlien

Hardware|Software

99 Picat Problems

On the following pages I work through and try to explain the classic "99 Problem" to help me learn logic programming in Picat. The 99 Problem examples on the Picat website are very terse with not much explaination of what's going on, so this is my attempt to break down each problem and the Picat syntax that's used.

What is Picat?

Picat is a logic-based programming language that combines features from Prolog, Haskell, and constraint programming. It supports pattern matching, recursion, and declarative problem-solving, making it ideal for puzzles, planning, and optimization tasks.

What are the 99 Problems?

The "99 Problems" originated as a set of exercises for learning Prolog, created by Werner Hett. They've since become a standard benchmark for learning any logic programming language. The problems progress from simple list operations to more complex tasks involving logic, arithmetic, and data structures.

What We'll Learn

This series covers each problem with:

Resources

Problems