Mercurial > repos > other > SevenLanguagesInSevenWeeks
view 3-Prolog/day1-wallaceandgrommit.pl @ 56:2bbb377ddeb0
Add more examples, more thoughts and a three-argument "collaborated" rule
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Tue, 26 Sep 2017 20:45:26 +0100 |
parents | 178b18b4f9ba |
children |
line wrap: on
line source
% Start with some simple facts % Note: like semantic systems, names are intrinsicly equal variables % (or variables don't exist). Names are called "atoms" likes(wallace, cheese). likes(grommit, cheese). likes(wendolene, sheep). % Each statement ends with a fullstop % Rule syntax is a bit odd (":-" and "\+") but we're saying that X and Y % can be friends if X and Y like the same thing. % Poor Wendolene. friend(X, Y) :- \+(X = Y), likes(X, Z), likes(Y, Z). % "\+" is apparently logical negation (because of course it is) % so the first "subgoal" stops Wallace being Wallace's friend % % Note: Prolog nomenclature is that this is "friend/2" - friend func with 2 params