Prolog is a general-purpose logic programming language associated with artificial intelligence and computational linguistics.

Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is declarative: the program logic is expressed in terms of relations, represented as facts and rules. A computation is initiated by running a query over these relations.

– wpédia

Anyway I just learnt that I should know this language within two days so let us try.

Hello world, because traditions and stuff:

% This is a comment!
printHelloWorld :-
    write('Hello world !'),
/* And these...
    ... are comments as well. */

Funny thing every line finishes with a PUNKT.

Prolog is dynamically typed (aka I don’t care of my variables’ type), with a single data type, the term. Subtypes: Atom (e.g. [], x, ‘stuff’, ‘other stuff’, …), numbers, variables, and compound (aka « functions »). Variables start with a capital letter constants with a lower case letter.

Prolog works with clauses. There are two kind of clauses, rules and facts

Rule: Head is TRUE if Body is TRUE.

Head :- Body.

Fact: a Head with a Body always TRUE.

truc(x, y).