作为 Lisp 的新手,我想知道 Lisp 语法是否可以“固定”?
有人说 Lisp 中的语法是其最大的优势之一。我不太明白这一点。
难道不能用空格、换行和缩进的组合来替换“明显的”括号吗?就像在 Python 中一样?
在我看来,括号是 Lisp 代码中最常用的字符。我想知道这是否属实 - 但如果是这样,这不是一个建议,语法中有一些冗余吗?
这个问题是否有一些简单的答案 - 为什么有这么多括号?
例如:
(defun factorial (x)
(if (= x 0)
1
(* x
(factorial (- x 1)))))
为什么不:
defun factorial (x)
if (= x 0)
1
* x
factorial
- x 1
例如,在行尾关闭括号,并始终在新行中打开它们。只有 1 是模棱两可的——它是 1 还是 (1)——但我们可以引入一个例外——单个标记没有“列出”。
这能行吗?
编辑: