Scheme 如何为该输出组合两个foldr/foldl函数?(球拍/方案)

Scheme 如何为该输出组合两个foldr/foldl函数?(球拍/方案),scheme,racket,fold,Scheme,Racket,Fold,我对racket很陌生,我想知道是否有一种方法可以将两个foldr`功能结合起来: '(foldr + 0 (list 1 2 3 4)) ;; output = 10 -> (4+(3+(2+(1+0)))) (foldr * 1 (list 1 2 3 4)) ;; output = 24 -> (4*(3*(2*(1*0))))' 我想接收这个输出:output=64->(4+4∗(3+3∗(2+2∗(1+1∗(0))非常感谢,我错误地理解了foldr函数。

我对racket很陌生,我想知道是否有一种方法可以将两个foldr`功能结合起来:

'(foldr + 0 (list 1 2 3 4)) 
 ;; output = 10 -> (4+(3+(2+(1+0))))

 (foldr  * 1  (list 1 2 3 4)) 
 ;; output = 24 -> (4*(3*(2*(1*0))))'

我想接收这个输出:output=64->(4+4∗(3+3∗(2+2∗(1+1∗(0))

非常感谢,我错误地理解了foldr函数。
#|
(4*(3*(2*(1*0)))) -> 0 (not 24)
(4+(3+(2+(1+0)))) -> 10

(foldr + 0 (list 1 2 3 4))
->
(+ 1 (+ 2 (+ 3 (+ 4 0))))
-> 
10

(foldr * 1 (list 1 2 3 4))
->
(* 1 (* 2 (* 3 (* 4 1))))
->
24

if you want this
(4+4∗(3+3∗(2+2∗(1+1∗0))))
->
64
|#
(foldr (lambda (x y) (+ (* x y) x)) 0 '(4 3 2 1))