Mar*_*ark 3 python common-lisp
在python中,可以这样做
EMPTY, PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING, BPAWN = range(8)
Run Code Online (Sandbox Code Playgroud)
你会如何在lisp中做同等的事情?
在Lisp中使用符号会更加惯用.通常作为自我评估的关键字符号:
(defparameter *chess-pieces*
'(:EMPTY :PAWN :KNIGHT :BISHOP :ROOK :QUEEN :KING :BPAWN))
Run Code Online (Sandbox Code Playgroud)
有理由定义数值 - 有时.特别是当你需要与外国功能交谈时.在Lisp中,您默认使用符号.
Common Lisp没有真正的枚举类型.在动态类型语言中使用符号与使用数字变量相比具有一些优势.例如,在调试期间,变量内容更具描述性:
相比:
> (setf c4 queen)
> c4
6
Run Code Online (Sandbox Code Playgroud)
与
> (setf c4 :queen)
> c4
:queen
Run Code Online (Sandbox Code Playgroud)
在后一示例中,符号值是自描述的.
| 归档时间: |
|
| 查看次数: |
911 次 |
| 最近记录: |