Используйте накопительную рекурсию для записи функции, называемой update-balance, которая использует список транзакций, лотов, начальный баланс в начале месяца (считается днем 0), start-bal и неотрицательное число, представляющее минимальный баланс, min-bal. Функция выдает баланс банковского счета после завершения всех транзакций в партии.накопительная рекурсия, общая сумма транзакций
Имея проблемы с использованием накопительных рекурсий
(define (trans-val t start-bal min-bal)
(cond
[(symbol=? (trans-action t) 'withdraw)
(cond
[(>= (- start-bal (trans-amt t)) min-bal)
(- start-bal (trans-amt t))]
[else (- start-bal (+ 1 (trans-amt t)))])]
[else
(cond
[(>= (+ start-bal (trans-amt t)) min-bal)
(+ start-bal (trans-amt t))]
[else (+ start-bal (- (trans-amt t) 1))])]))
Вы процедура не является рекурсивным вообще. Он просто действует на одну транзакционную структуру 't'. Также вы можете уточнить, что должно произойти, если вы попытаетесь снять и получить баланс меньше, чем 'min-bal'. В этом коде вы просто добавляете 1 к нему и выходите в любом случае, я не уверен, что это то, что вы хотите. – Rptx