Scheme 球拍中应用全部功能的实现

Scheme 球拍中应用全部功能的实现,scheme,racket,Scheme,Racket,我试图编写一个函数apply all,它传递一个函数列表和一个数字,并在应用于该数字时生成一个函数值列表 比如说, (apply-all (list sqrt square cube) 4) => (2 16 64)) 假设所有函数都已预先定义 我知道如何分别编写每个函数,以及如何工作,但我有点困惑,不知道如何执行此操作和处理传递的函数您需要遍历函数列表,然后依次为每个函数将其应用于number参数。最简单的方法是使用map程序: (define (apply-all flist num

我试图编写一个函数
apply all
,它传递一个函数列表和一个数字,并在应用于该数字时生成一个函数值列表

比如说,

(apply-all (list sqrt square cube) 4) => (2 16 64))
假设所有函数都已预先定义


我知道如何分别编写每个函数,以及如何工作,但我有点困惑,不知道如何执行此操作和处理传递的函数

您需要遍历函数列表,然后依次为每个函数将其应用于number参数。最简单的方法是使用
map
程序:

(define (apply-all flist num)
  (map (lambda (f) (f num))
       flist))

(apply-all (list sqrt square cube) 4)
=> '(2 16 64)

这里有一个我喜欢的方法,使用
for/list

(define (apply-all fs n)
  (for/list ([f fs])
     (f n)))
如果这是一项作业,可能就是你应该写的内容。

重复
(define (apply-all fs n)
  (cond
    ((null? fs) fs)
     (else (cons ((car fs) n) (apply-all ??? ???)))))