在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

在后一个示例中,符号值是自描述性的。

10-06 01:55