Please, can you explain to me what the part of if (the one that is noted with ***) is doing? The explanation given was that it adds conditional to the (term a). However, I think in that case there must be written something like:
(if (filter term a)
The whole code is below:
(define (filtered-accumulate combiner null-value term a next b filter)
(if (> a b)
null-value
(combiner (***if (filter a)
(term a)
null-value)***
(filtered-accumulate combiner null-value term (next a) next b filter))))