在方案语言中,这些具有少量点的等效结构是什么
'(((((a.b).c).d)。())
'((a。(b。()))。())
'(a。(b。c))
'(a。((b。c)。()))
例如:for'(a。(b。(c。(d。()))))等价物是(a b c d e)
答案 0 :(得分:2)
就像在解释器中计算表达式并观察打印内容一样简单:
'((((a . b) . c) . d))
'((a b))
'(a b . c)
'(a (b . c))
请记住:点符号只是一种约定,它是在列表结构不正确时显示的(也就是说,它不以空列表结尾)。这就是打印完全相同的原因:
'(a . b)
=> '(a . b)
但这是没有点打印的,这暗示最后一个元素是一个空列表,所以没有必要显示它:
'(a b . ())
=> '(a b)
阅读documentation以了解有关点符号所有怪癖的更多信息,特别注意此部分:
通常,打印对的规则如下:始终使用点表示法,但如果点后面紧跟一个左括号,则删除点,左括号和匹配的右括号。因此,
(0 . (1 . 2))
变为(0 1 . 2)
,(1 . (2 . (3 . ())))
变为(1 2 3)
。