Scheme / Racket R5RS。如何将给定列表和值输入放入嵌套的函数列表中

时间:2018-02-20 02:13:01

标签: scheme racket r5rs

对不起,如果这是一个非常新的问题,但我找不到直接答案。我给出了一个定义全链函数的任务,给出初始值和函数列表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)))))  

1 个答案:

答案 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))