SICP 연습문제 2.26 친절한 풀이
문제
x와 y의 정의가 다음과 같다고 하자.
(define x (list 1 2 3)) |
다음 식의 값을 구했을 때 실행기에서는 그 값을 어떻게 찍어내는가?
(append 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))
읽어주셔서 감사합니다.