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
는 표시되지 않습니다.