Mercurial > repos > other > SevenLanguagesInSevenWeeks
view 3-Prolog/day1-food.pl @ 67:8906b5a4517f
Calculate and validate boxes
The solver now creates answers for valid sudoku, but doesn't reject invalid ones (e.g. dupe in column)
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 07 Oct 2017 15:07:34 +0100 |
parents | cbaa3546f3f8 |
children |
line wrap: on
line source
% Define some foods and "flavours". % Note that this is Americanised, so some of these definitions are generous! food_type(velveeta, cheese). food_type(ritz, cracker). food_type(spam, meat). food_type(sausage, meat). food_type(jolt, soda). food_type(twinkie, dessert). flavour(sweet, dessert). flavour(savoury, meat). flavour(savoury, cheese). flavour(sweet, soda). food_flavour(X, Y) :- food_type(X, Z), flavour(Y, Z). % Note: flavour(sweet, What) will return 'yes' and a closed set of answers because it is just all of the facts % but "food_flavour(What, meat)" will return answers and then say 'no', because it hasn't been given a flavour() % fact for "ritz"/"cracker". % This doesn't explain why "food(What, meat)" returns "no" after spam and sausage, though. Maybe because there's % flavour(savoury, meat) so Prolog knows savoury is associated with meat but doesn't know whether it is in a food() % fact without more processing?