对不起,如果这是一个非常新的问题,但我找不到直接答案。我给出了一个定义全链函数的任务,给出初始值和函数列表fn
当我打电话给chain-all 0 (list f g h)
时
输出应该是(f (g (h 0)))
我现在离开了,但到目前为止我已经
(define (chain init fns)
(if (null? fns) init
(cons (car fns) (chain init (cdr fns)))))
答案 0 :(得分:0)
你快到了。您使用cons
构建列表,因此它是平的。你想要嵌套列表,所以改变:
(cons (car fns) (chain init (cdr fns)))))
到
(list (car fns) (chain init (cdr fns)))))
另外请记住,当您从REPL评估此功能以进行测试时,您应该使用quote
代替list
:
> (chain 0 `(f g h))