對的虛線語法

有一種特殊的語法允許我們以比使用 cons 建構函式更緊湊的方式編寫 cons 單元格。

一對可以寫成:

'(1 . 2) == (cons 1 2)

最大的區別是我們可以使用 quote 建立 pairs。否則,Scheme 會建立一個合適的列表 (1 . (2 . '()))

點語法強制表示式只有 2 個成員。每個成員可以是任何型別,包括成對。

'(1 . (2 . (3 . 4)))
> (1 2 3 . 4)

請注意,不正確的列表應在末尾帶一個點,以顯示最後一對列表的 cdr 不是空列表'()

這種顯示列表的方式有時令人困惑,因為下面的表示式將表達不像人們期望的那樣。

'((1 . 2) . ( 3 . 4))
> ((1 . 2) 3 . 4)

由於列表通常跳過 .,列表的第一個引數將是 (1 . 2),第二個引數將是 3,但由於列表不合適,最後的 . 顯示為顯示列表的最後一個元素不是'()。甚至想到,資料以不同的方式顯示,內部資料就像建立時一樣。