;;; 2.15a.scm ;;; ;;; $Id: 2.15a.scm 1.2 2024/10/27 09:12:29 s Exp $ ; ; bc, Before-tax cash flow : 税引き前キャッシュ・フロー ; da, Depletion : 減価償却 ; ti, Taxable income : 課税対象収益 ; ta, tax : 税金 ; ac, After-tax cash flow : 税引き後キャッシュ・フロー ; tr, tax rate : 税率 ; ir, infration rate : インフレ率 ; ic, initial capital expenditure : 初期資本費用 ; r, discount rate : 金利 ; df, discount factor : 割引係数(2011-10-29改) ; ny : 年数 ; pv, present value of ac : 税引き後キャッシュ・フローの現在価値 (define (main args) ; procedure (define sum (lambda (x) (fold + 0 x))) ; input (define tr 0.34) (define ir 0.04) (define r 0.12) (define ic 10e6) (define ny 5) (define bc (list (- ic) 2990e3 2990e3 2990e3 2990e3 2990e3)) (define da (list 0 (/ ic ny) (/ ic ny) (/ ic ny) (/ ic ny) (/ ic ny))) (define k (iota (length bc))) ;calculating (define ti (map (lambda (x y) (if (> x y ) (- x y) 0)) bc da)) (define ta (map (lambda (x) (* x tr)) ti)) (define ac (map (lambda (x y) (- x y )) bc ta)) (define df (map (lambda (x) (/ 1 (expt (+ 1 r) x))) k)) (define pv (map (lambda (x y) (* x y)) ac df)) (define sum_pv (sum pv)) ; output (print "2.15a.scm") (print "k " (map (lambda (x) (format "~9d" x )) k )) (print "bc " (map (lambda (x) (format "~9d" (x->integer x))) bc)) (print "da " (map (lambda (x) (format "~9d" (x->integer x))) da)) (print "ti " (map (lambda (x) (format "~9d" (x->integer x))) ti)) (print "ta " (map (lambda (x) (format "~9d" (x->integer x))) ta)) (print "ac " (map (lambda (x) (format "~9d" (x->integer x))) ac)) (print "df " (map (lambda (x) (format "~9,3f" x )) df)) (print "pv " (map (lambda (x) (format "~9d" (x->integer x))) pv)) (print "sum of pv " (x->integer sum_pv)) 0) ;;; end