在类 LISP 语言中,所有语言结构都是一等公民。
考虑 Dylan 中的以下示例:
let x = if (c)
foo();
else
bar();
end;
在 LISP 中:
(setf x (if c (foo) (bar)))
在 Python 中,您必须编写:
if c:
x = foo();
else:
x = bar();
因为 Python 区分语句和表达式。
遵循越位规则(具有基于缩进的语法)的语言中的所有语言结构都可以是表达式,以便您可以将它们分配给变量或将它们作为参数传递吗?