嵌套函数调用

时间:2010-09-27 09:25:55

标签: functional-programming lambda scheme

这让我绝对疯狂。我有这样的替代函数:

(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列表为空。 我不知道为什么这个想法让我如此沮丧,任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

从长度为2的示例中,我认为概括类似于(foldr mysub body x bind),它将mysub应用于xbind中的每对值。< / p>

使用map在此处不起作用,因为您需要通过每次body调用传递mysub的“当前”值。