我不知道Common Lisp是否存在模式匹配函数,但我必须自己创建函数.我不知道Lisp.有人可以单独学习Lisp,最重要的是,如何在Lisp中进行模式匹配.我将不得不传递一个模式和一个事实,并说它们是否匹配.一个例子是
(heroes (hitpoints=hp) (mana=m))
应该匹配
(Morphling (hitpoints 435) (mana 260))
如果一个数字更大或更小,它也应该能够进行数字比较.就像另一个英雄法力不那么变形.
各种Lisp书中解释了简单的模式匹配功能.
Lisp,第3版,Winston/Horn
人工智能编程的范例,Common Lisp中的案例研究,Peter Norvig
和别的.
以上书籍很好地解释了在Lisp中实现模式匹配.
存在库,例如cl-match,Optima和其他各种库.