それで(car '(2 3)) -> 2
(cdr '(2 3)) -> (3)
3を生成するために何かを取得できるようにするには、どの関数を使用する必要がありますか?
(function-name '(2 3)) -> 3
それで(car '(2 3)) -> 2
(cdr '(2 3)) -> (3)
3を生成するために何かを取得できるようにするには、どの関数を使用する必要がありますか?
(function-name '(2 3)) -> 3
単純に行うのは問題ないはずです。
(car (cdr '(2 3)))
これは次と同じです:
(cadr '(2 3))
これが機能するのは、「car」が式の最初の要素を取得するのに対し、cdrは最初の要素なしでリストの残りの部分を返すためです。「(cdr'(2 3))」が「(3)」のリストを返すことはすでに示しました。したがって、この「車」は要素(リストではない)「3」です。ちなみに、「(cdr(cdr( '2 3)))」は「(cdr(3))」、つまり「()」です。
LISPは面白くないですか?
ヒント:
car
リストの最初の要素を参照します。
cdr
リストの残りの部分を参照し、それ自体がリストです。
したがって、必要なのは、最後の要素を含むリストから最初の要素を返す関数です。
を使用することもできます(second '(2 3))
。 second
の別名ですcadr
。