SICP 연습문제 2.26 친절한 풀이

문제

x와 y의 정의가 다음과 같다고 하자.

(define x (list 1 2 3))
(define y (list 4 5 6))

다음 식의 값을 구했을 때 실행기에서는 그 값을 어떻게 찍어내는가?

(append x y)
(cons x y)
(list x y)

문제로 부터 얻은 것

list cons append의 관계를 조금더 알 수 있었습니다.

문제풀이

세 프로시저의 결과물

예상한 그대로의 값을 출력했습니다.



append는 리스트와 리스트를 이어서 새로운 리스트를 만들어 주기 때문에 아래의 리스트를 반환합니다.
(1 2 3 4 5 6)



cons는 두번째 인자로 리스트를 받았을 때, 받은 리스트의 첫번째 원소로 cons의 첫번째 인자를 넣은 리스트를 반환합니다.
((1 2 3) 4 5 6)



list는 두 인자를 받아서 단순한 리스트로 만들 뿐이므로 아래와 같은 리스트를 반환합니다. (이 리스트의 length는 2입니다.)
((1 2 3) (4 5 6))



읽어주셔서 감사합니다.