I have no idea if there exists a pattern matching function for Common Lisp, nevertheless I have to make my own function. I have no idea about Lisp. Can somebody give heads-up on learning Lisp and most importantly, how to go about doing pattern matching in Lisp. I will have to pass a pattern and a fact and say if they match.
An example would be
(heroes (hitpoints=hp) (mana=m))
should match
(Morphling (hitpoints 435) (mana 260))
it should also be able to also do numeric comparisons of if a number is greater or lesser. Like if another heroes mana is less that Morphling.
Simple pattern matching functionality is explained in various Lisp books.
Lisp, 3rd edition, Winston/Horn
Paradigms of Artificial Intelligence Programming, Case Studies in Common Lisp, Peter Norvig
and others.
Above books explain implementing pattern matching in Lisp very well.
Libraries exist, for example trivia, cl-match, and various others.