アイテムのシーケンス(いわゆる適切なリスト)をnil
いつ行う必要があるのか[1]がわかりません。cons
いわゆる不適切なリスト(cons
末尾のない-edペアnil
)だけを使用することで、同じ目標を達成できるように思われます。Lisps [2]は、aとアトムを区別するための基本的なプロシージャをすでに提供しているためpair?
(一部の実装ではatom?
)、たとえば、リストでプロシージャを定義するときに、length
以下に示すように、点線のペアだけで同じことができます。 :
(define len
(lambda (l)
(cond ((pair? l) (+ 1 (len (cdr l))))
(else 1) ) ) )
従来のとは対照的に'(1 . (2 . 3))
、期待される答えを得るために、この手順を不適切なリストに適用できることは明らかです。3
(length '(1 2 3))
の必要性を弁護するご意見をお聞かせnil
ください。前もって感謝します。
nil
[1] / NIL
、'()
との間の議論は無視しましょう()
。
[2]ここでは、Lispファミリーの言語を意味します。