In Picat, what is the fundamental difference between pattern matching in rule heads and explicit unification using the '=' operator in the rule body?
-
A
Pattern matching is bidirectional, while explicit unification is unidirectional.
-
B
Pattern matching in rule heads is a one-sided unification that does not bind variables in the call, whereas '=' performs full unification.
-
C
There is no difference; they are syntactically different but semantically identical.
-
D
Pattern matching can only be used with structures, while explicit unification works with all data types.