在Python中可以做到这一点
EMPTY, PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING, BPAWN = range(8)
你会如何在 lisp 中做等价的事情?
在 Lisp 中,只使用符号会更惯用。通常作为自评估关键字符号:
(defparameter *chess-pieces*
'(:EMPTY :PAWN :KNIGHT :BISHOP :ROOK :QUEEN :KING :BPAWN))
有时,定义数值是有原因的。特别是当你需要与外国职能部门交谈时。在 Lisp 中,默认情况下你会使用符号。
Common Lisp 没有真正的枚举类型。在动态类型语言中使用符号比使用数值变量具有一些优势。例如,在调试过程中,变量内容更具描述性:
Compare:
> (setf c4 queen)
> c4
6
vs.
> (setf c4 :queen)
> c4
:queen
在后一个示例中,符号值是自我描述的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)