この質問に対する答えを多かれ少なかれ理解した後、Racket/Scheme では、読者レベルで、構文ツリーの各ペアの 2 番目の要素がリストでなければならないように見えます。言い換えると、フォームのドット付き s 式が(A . B)
構文ツリーの頂点を表すときはいつでも、B
のようにリストとして解析する s 式によってのみ可能(C D E)
です。例: (A . (C D E))
. もちろん(A C D E)
、これは同じように解析されるため、 と書くことができます。
(+ . (1 2 3)) ; => 6
(+ 1 2 3) ; => 6
(define . (x 1))
x ; => 1
(define y 2)
y ; => 2
私の質問は、「ドット ペア」の s 式が、リテラル データ内以外で、Racket/Scheme 構文で許可されている理由は何ですか? ペアを使用して記述できるが、リストを使用して簡単に記述できない Racket/Scheme 式の例はありますか?