Basic Pattern matching
Match is between one s-expression that does not contain variables with another s-expression that does not.
Output is a list of bindings for all the variables in the second form
- (match ’(pickup 3) ’(pickup ?x))
- (match ’(pickup 3) ’(pickup 4))
- (match ’(pickup 3) ’(pickup 3))
- (match ’(pickup 3 4) ’(pickup ?x ?y))
- (match ’(pickup 3 4) ’(pickup ?x ?x))
- (match ’(pickup 3 3) ’(pickup ?x ?x))