2014-05-24 2 views
-2

이 질문은 납세자에 대한 정보와 세금이 어떻게 산출되는지를 저장합니다. . 새로운 유형의 납세자가 필요합니다 : ;; 납세자는 구조입니다 (make-taxpayer inc c). inc는 음수가 아닌 (납세자의 수입)이고 ;; c는 이 음이 아닌을 소비하는 함수 (Num -> Num)입니다. 소득이없고 음수가 아닌 금액을 낸다. ;; 그 수입에 충당해야한다. (define-struct taxpayer (income-struct taxpayer (income- 계산)) lotp라고 불리는 납세자 구조의 목록을 사용하는 scheme-functions 평균 세금을 작성하고 lotp의 모든 납세자에 대해 평균 의 세금을 납부한다. 로프가 비어 있으면 0이 생성됩니다. 예를 들어, 현재 연방 세금 비율에 해당하는 함수를 사용하여 (평균 세금 (목록 - 납세자 70000 (람다 (a) (+ 6593 (* 0.22 - - 43953))))) (람다 (a) (* 0.15 a))) (메이 납세자 140000 (람다 (a) (+ 28,837 (*는 0.29 (-은 136,270))))))) => 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 

오류가 발생하는 이유와 내가 사용할 수있는 접근 방법에 대한 조언은 무엇입니까?

답변

0

당신은 간단한 오타가 있습니다. taxpayer-income은 절차이므로 (taxpayer-income t) :