如何在Common Lisp中进行模式匹配

giz*_*gok 11 lisp common-lisp

我不知道Common Lisp是否存在模式匹配函数,但我必须自己创建函数.我不知道Lisp.有人可以单独学习Lisp,最重要的是,如何在Lisp中进行模式匹配.我将不得不传递一个模式和一个事实,并说它们是否匹配.一个例子是

(heroes (hitpoints=hp) (mana=m)) 
Run Code Online (Sandbox Code Playgroud)

应该匹配

(Morphling (hitpoints 435) (mana 260))
Run Code Online (Sandbox Code Playgroud)

如果一个数字更大或更小,它也应该能够进行数字比较.就像另一个英雄法力不那么变形.

Rai*_*wig 15

各种Lisp书中解释了简单的模式匹配功能.

和别的.

以上书籍很好地解释了在Lisp中实现模式匹配.

存在库,例如cl-match,Optima其他各种库.

  • @gizgok:一个好的开始是使用Winston/Horn书学习Lisp.奖励:它解释了实现模式匹配. (4认同)