gpt4 book ai didi

python - 如何在 lisp 中定义这样的常量?

转载 作者:太空宇宙 更新时间:2023-11-03 12:19:20 24 4
gpt4 key购买 nike

在 python 中可以这样做

EMPTY, PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING, BPAWN = range(8)

你会如何用 lisp 做等价的事情?

最佳答案

在 Lisp 中只使用符号会更加地道。通常作为 self 评估的关键字符号:

(defparameter *chess-pieces*
'(:EMPTY :PAWN :KNIGHT :BISHOP :ROOK :QUEEN :KING :BPAWN))

定义数值是有原因的 - 有时。尤其是当您需要与外部函数对话时。在 Lisp 中,您会默认使用符号。

Common Lisp 没有真正的枚举类型。在动态类型语言中使用符号比使用数字变量有一些优势。例如,在调试期间,变量内容更具描述性:

比较:

> (setf c4 queen)

> c4
6

对比

> (setf c4 :queen)

> c4
:queen

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

关于python - 如何在 lisp 中定义这样的常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10870836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com