If the modified input were [you,are,silly,.] then the goal match([you,are,silly,.],X) should match the head of the first clause for match/2 with the result that the output half of the rule should eventually result in
on the terminal screen.
An example matcher using unification in a straightforward way might be:
but it cannot cope with [you,are,very,silly]. (can you explain why?) A better one would be:
You should try to explain the working of match/2. (It is quite difficult!) Actually, match/2 implements a `one way' matcher.