我正在尝试了解对,缺点,虚线元组和正确列表之间的关系PLT-Scheme 372.我的问题的详细背景如下:
在阅读了一些教科书并进行反复试验后,我得到了以下理解和直观的想法(我可能错了......):
所有列表都是对,例如:
(pair? (list 'a 'b 'c)) => #t
所有的意思都是成对的,例如:
(pair? (cons 'a (cons 'b 'c))) => #t
一些以点分隔的元组是对,例如:
(pair? '(a . b)) => #t
标准R5RS中的(pair? '(a . b . c)) => #t
不是合法语法。
然后我遇到了这个问题:为什么'(a.b.c)评价为(b a c)?我在哪里可以找到点的完整使用手册?
'(a . b) => (a . b)
'(a . b . c) => (b a c)
'(a . b . c . d) => illegal use of `.'
'(cons 'a (cons 'b 'c)) => (a b . c)
答案 0 :(得分:5)
对于Racket(PLT),有一个很好的描述here。
关于语法(a . b . c)
,请查看页面底部,它是特定于Racket的读者扩展,旨在将(< 1 2)
等典型测试表达为(1 . < . 2)
。