灯下 登录
计算机科学 / SICP / 1.3.4 Procedures as Returned Values

Exercise 1.41 · 习题

Exercise 1.41: Define a procedure double
that takes a procedure of one argument as argument and returns a procedure that
applies the original procedure twice. For example, if inc is a
procedure that adds 1 to its argument, then (double inc) should be a
procedure that adds 2. What value is returned by

(((double (double double)) inc) 5)

练习 1.41:定义过程 double,它以一个单参数过程为参数,并返回一个将原过程施用两次的过程。例如,若 inc 是一个给参数加 1 的过程,则 (double inc) 应是一个给参数加 2 的过程。以下表达式返回的值是什么?

(((double (double double)) inc) 5)

Racket #lang sicp
(((double (double double)) inc) 5)