在python中可以这样做
EMPTY, PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING, BPAWN = range(8)
你在口齿不清的情况下会怎么做?
最佳答案
在lisp中,只使用符号会更习惯。通常作为自评估关键字符号:
(defparameter *chess-pieces*
'(:EMPTY :PAWN :KNIGHT :BISHOP :ROOK :QUEEN :KING :BPAWN))
有时,定义数值是有原因的尤其是当你需要和国外的官员交谈时在lisp中,默认情况下使用符号。
common lisp没有真正的枚举类型。在动态类型语言中使用符号比使用数值变量有一些优势。例如,在调试期间,变量内容更具描述性:
比较:
> (setf c4 queen)
> c4
6
与
> (setf c4 :queen)
> c4
:queen
在后一个示例中,符号值是自描述性的。