Вложенные вызовы функций - PullRequest
       8

Вложенные вызовы функций

1 голос
/ 27 сентября 2010

Это сводит меня с ума.У меня есть подстановочная функция, подобная этой:

(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)

Это только малая часть моей домашней работы.

Я пытался использовать карту с лямбда-функциями, но каждый пробный подход оставляет мне что-то вроде:

( (x1)(bind1)(body) (x2)(bind2)(body) ) ;;I've found a million ways to get this

Мне нужно вызывать это, пока список x не будет пуст,Я не знаю, почему эта идея так меня расстраивает, любая помощь очень ценится.

1 Ответ

0 голосов
/ 27 сентября 2010

Из примера с length = 2, я думаю, что обобщение выглядит как (foldr mysub body x bind), который применяется mysub к каждой паре значений в x и bind.

Использование map здесь не работает, потому что вам нужно передавать «текущее» значение body через каждый mysub вызов.

...