【发布时间】:2014-05-24 03:53:47
【问题描述】:
此问题存储有关纳税人及其纳税方式的信息 被计算。需要一个新类型的纳税人:;;纳税人是 结构(make-taxpayer inc c),其中 ;; inc 是一个非负数 (纳税人的收入),以及;; c 是一个函数 (Num -> Num) 消耗一个非负数;;收入并产生非负金额 税收;;欠该收入(定义结构纳税人(收入 计算)) 编写一个 Scheme 函数 average-taxes 消耗 纳税人结构列表,称为lotp,并产生平均值 lotp 中所有纳税人的应缴税款。如果lotp为空,那么 0 产生。例如,使用当前对应的函数 联邦税率,(平均税(列表(make-taxpayer 70000(lambda (a) (+ 6593 (* 0.22 (- a 43953)))) (make-taxpayer 0 (lambda (a) (* 0.15 a))) (make-taxpayer 140000 (lambda (a) (+ 28837 (* 0.29 (- a 136270))))))) => 14080.68
我正在尝试解决上述问题...以下是我的尝试:
(define-struct taxpayer (income calculation))
(define (average-taxes lotp)
(/
(foldr + 0
(map (lambda (t) ((taxpayer-calculation t) taxpayer-income t)) lotp))
(length lotp)))
I get the following error when running this test:
(define mylist
(list
(make-taxpayer 70000 (lambda (a) (+ 6593 (* 0.22 (- a 43953)))))
(make-taxpayer 0 (lambda (a) (* 0.15 a)))
(make-taxpayer 140000 (lambda (a) (+ 28837
(* 0.29 (- a 136270)))))))
(average-taxes mylist) =>
... 2 Quesion 4.rkt:11:21: expects only 1 argument, but found 2
关于为什么会发生错误以及我可以使用哪些方法的任何建议?
【问题讨论】: