这让我绝对疯狂。我有这样的替代函数:
(define (mysub x bind body) ;; x, bind, body are lists
...)
我需要调用这样的函数:
;;this is the explicit call for when length x = length bind = 2.
;;how do I generalize these nested calls?
;;in case it's not obvious, i'm passing mysub as the third parameter
;;to a previous mysub call
(mysub (first x) (first bind) (mysub (first (rest x)) (first (rest bind)) body)
这只是我作业的一小部分。
我尝试过使用带有lambda函数的地图,但是我尝试过的每一种方法都给我留下了类似的东西:
( (x1)(bind1)(body) (x2)(bind2)(body) ) ;;I've found a million ways to get this
我需要调用它直到x列表为空。 我不知道为什么这个想法让我如此沮丧,任何帮助都非常感激。
答案 0 :(得分:0)
从长度为2的示例中,我认为概括类似于(foldr mysub body x bind)
,它将mysub
应用于x
和bind
中的每对值。< / p>
使用map
在此处不起作用,因为您需要通过每次body
调用传递mysub
的“当前”值。