Lispスタイルの言語では、リストは通常次のように定義されます。
(list 1 2 3)
このチャレンジのために、すべてのリストには正の整数または他のリストのみが含まれます。またlist
、最初はキーワードを省略するため、リストは次のようになります。
(1 2 3)
を使用して、リストの最初の要素を取得できますcar
。例えば:
(car (1 2 3))
==> 1
そして、最初の要素が削除された元のリストを取得できますcdr
:
(cdr (1 2 3))
==> (2 3)
重要:cdr
リストに単一の要素がある場合でも、常にリストを返します。
(cdr (1 2))
==> (2)
(car (cdr (1 2)))
==> 2
リストは、他のリスト内に含めることもできます。
(cdr (1 2 3 (4 5 6)))
==> (2 3 (4 5 6))
そのリターンコードは、その使用するプログラムを書くcar
とcdr
、リスト内の特定の整数を返すように。プログラムが返すコードでは、リストがに格納されl
、ターゲット整数がl
どこかにあり、すべての整数が一意であると想定できます。
例:
入力: (6 1 3) 3
出力: (car (cdr (cdr l)))
入力: (4 5 (1 2 (7) 9 (10 8 14))) 8
出力: (car (cdr (car (cdr (cdr (cdr (cdr (car (cdr (cdr l))))))))))
入力: (1 12 1992) 1
出力: (car l)
(1 2 3) 16
、私たちは返還しなければなりませんか()
?
(1 2 3) 16
は表示されません。