|
Slide 14.18: Facts with arguments (cont.) Slide 14.20: Variables and unification (cont.) Home |
|
eats( fred, mangoes ).
How do we ask what fred eats?
We could type in something like
?- eats( fred, what ).
However Prolog will say no.
The reason for this is that what does not match with mangoes.
In order to match arguments in this way we must use a variable.
The process of matching items with variables is known as unification.
Variables are starting with a capital letter, for example,
X /* a capital letter */ VaRiAbLe /* a word——either case of letters */ My_name /* linking words together via '_' */Thus returning to our first question we can find out what
fred eats by typing
?- eats( fred, What ). What = mangoes yesAs a result of this query, the variable
What has matched (or unified) with mangoes.
We say that the variable What now has the binding mangoes.
When we pose a query, if the query is successful, Prolog prints both the variable and the variable name, as we see above.
loves( john, mary ). loves( fred, hobbies ).