SICP 연습문제 1.4 친절한 풀이
문제
엮은식의 연산자 자리에 복잡한 식이 다시 와도 앞에서 밝힌 규칙에 따라 식의 값을 구할 수 있다. 다음 프로시저에 인자를 주고 어떻게 계산되는지 밝혀보라.
(define (a-plus-abs-b a b) |
문제로 부터 얻은 것
Scheme 언어는 연산자나 프로시저도 데이터처럼 인자로 넘겨줄 수 있는 언어라는 것을 보여준 문제입니다.
문제풀이
(if (> b 0) + -) |
위 표현을 주목해서 볼 필요가 있습니다.
b의 값에 따라서 if식이 반환하는 값은 데이터가 아닌 연산자 +,- 입니다.
따라서 a-plus-abs-b 프로시저는 b가 양수일때는
(+ a b) |
b가 음수일때는
(- a b) |
를 반환할 것입니다.
읽어주셔서 감사합니다.