對的虛線語法
有一種特殊的語法允許我們以比使用 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
,但由於列表不合適,最後的 .
顯示為顯示列表的最後一個元素不是'()
。甚至想到,資料以不同的方式顯示,內部資料就像建立時一樣。