;;; 3.7.scm ;;; 2016-02-13 (define (main args) ; input (define r 0.1) (define cfsa '(-20000 -1000 -1000 -1000 0)) (define cfsb '(-30000 -2000 -2000 -2000 -2000 -2000 0)) (define ia '(0 1 2 3)) (define ib '(0 1 2 3 4 5)) ; calculate (define pva (fold + 0 (map (lambda (x y) (/ x (expt (+ 1 r) y))) cfsa ia))) (define pvb (fold + 0 (map (lambda (x y) (/ x (expt (+ 1 r) y))) cfsb ib))) (define na (length ia)) (define nb (length ib)) (define aa (/ (* r (expt (+ 1 r) na) (- pva)) (- (expt (+ 1 r) na) 1))) (define ab (/ (* r (expt (+ 1 r) nb) (- pvb)) (- (expt (+ 1 r) nb) 1))) ; output (print "input") (print "r= " r) (print "cfsa= " cfsa) (print "ia= " ia) (print "na= " na) (print "output") (print "pva= " (round pva)) (print "aa= " (round aa)) (print "input") (print "cfsb= " cfsb) (print "ib= " ib) (print "nb= " nb) (print "output") (print "pvb= " (round pvb)) (print "ab= " (round ab)) 0) ;;; end