如何编写消耗函数列表的函数max-list-function
,然后生成函数f
,以便对于每x
(f x)
,g
生成最大值函数列表中的所有函数(max-list-function (lambda (n) (+ n 4)) (lambda (n) (- 15 n))))
?
例如(f 2)
生成一个函数,(f 10)
返回13,{{1}}返回14。
这是通过抽象列表函数(filter,foldr,map,...)完成的,没有递归。
答案 0 :(得分:1)
试试这个:
(define (max-list-function flist)
(lambda (n)
(foldr max -inf.0
(map (lambda (f) (f n))
flist))))
像这样使用:
(define f (max-list-function
(list (lambda (n) (+ n 4)) (lambda (n) (- 15 n)))))
(f 2)
> 13.0
(f 10)
> 14.0