Workspace

Prolog

logic programming rules search and symbolic reasoning

Definition first

What Prolog means

Prolog is a programming language for writing exact instructions, often used for logic programming rules search and symbolic reasoning. Start with one mental model: input goes through steps and becomes output.

Minimum run factsFile main.plRun swipl -q -s main.plHabit Describe facts rules and queries before thinking procedurally
Program

An ordered set of instructions. It reads input, follows rules, and produces output.

Value and variable

A value is data. A variable is the name you use to hold and reuse that data.

Function

A named piece of work. It takes input, does one job, and can return a result.

Runtime

SWI-Prolog is the place that actually runs code from main.pl.

First readable code

Program output

entry point output syntax writeln
writeln(42).
Output 42

Language lineage

Prolog family tree

See where Prolog comes from, which languages feel close, and what to learn next.

roots
formal logicAI research
currentPrologLogic programming family
familyLogic programming family
best used for

facts, rules, search, and logic based reasoning

Zero base path

1Read one rule2Predict output3Type from memory4Run checklist5Repeat with one change

Question bank

Search before practice

Pick a stage or search across the open programming bank. Jump straight to the matching drill.

18 matching questions
Q 1ChoiceStage 1 definitions

Prolog practice 1

Prolog question 1. Choose the statement that matches printing a value.

Q 2ChoiceStage 1 definitions

Prolog practice 2

Prolog question 2. Choose the statement that matches naming a value.

Q 3ChoiceStage 1 definitions

Prolog practice 3

Prolog question 3. Choose the statement that matches reusable function.

Q 4ChoiceStage 1 definitions

Prolog practice 4

Prolog question 4. Choose the statement that matches basic collection.

Q 5ChoiceStage 1 definitions

Prolog practice 5

Prolog question 5. Choose the statement that matches printing a value.

Q 6ChoiceStage 1 definitions

Prolog practice 6

Prolog question 6. Choose the statement that matches naming a value.

Q 7ChoiceStage 1 definitions

Prolog practice 7

Prolog question 7. Choose the statement that matches reusable function.

Q 8ChoiceStage 1 definitions

Prolog practice 8

Prolog question 8. Choose the statement that matches basic collection.

Q 9ChoiceStage 1 definitions

Prolog practice 9

Prolog question 9. Choose the statement that matches printing a value.

Q 10ChoiceStage 1 definitions

Prolog practice 10

Prolog question 10. Choose the statement that matches naming a value.

Q 11ChoiceStage 1 definitions

Prolog practice 11

Prolog question 11. Choose the statement that matches reusable function.

Q 12ChoiceStage 1 definitions

Prolog practice 12

Prolog question 12. Choose the statement that matches basic collection.

Q 13ChoiceStage 1 definitions

Prolog practice 13

Prolog question 13. Choose the statement that matches printing a value.

Q 14ChoiceStage 1 definitions

Prolog practice 14

Prolog question 14. Choose the statement that matches naming a value.

Q 15ChoiceStage 1 definitions

Prolog practice 15

Prolog question 15. Choose the statement that matches reusable function.

Q 16ChoiceStage 1 definitions

Prolog practice 16

Prolog question 16. Choose the statement that matches basic collection.

Q 17ChoiceStage 1 definitions

Prolog practice 17

Prolog question 17. Choose the statement that matches printing a value.

Q 18ChoiceStage 1 definitions

Prolog practice 18

Prolog question 18. Choose the statement that matches naming a value.

Multiple choice

Prolog practice 1

Q 1Choicenew

Prolog question 1. Choose the statement that matches printing a value.

writeln(42).

Reference

Patterns for main.pl

SWI-Prologswipl -q -s main.pl
Recall from memoryRead a small point then write it back without looking
Trace the codeWrite variable values line by line before you run the answer
Type it yourselfCopy less type more and fix one small error at a time

entry point output syntax writeln

Program output

writeln(42).
  • Run the smallest file first
  • Print one known value
  • Check the output before adding more code

variables assignment types fact

Values and names

total(42).
show :- total(X), writeln(X).
  • Give values readable names
  • Keep one idea per line while learning
  • Trace the value before changing it

function collection List

Functions and collections

add(A, B, R) :- R is A + B.

scores([40, 2]).
show :- scores(S), length(S, N), writeln(N).
  • Keep functions small
  • Return useful values
  • Use the common collection before reaching for frameworks