; 5.12.scm ; 2024-10-12 ; $Id: 5.12.scm 1.1 2024/11/02 12:04:55 s Exp $ ; ; df : discount factor ; d : dividend ; r : interest rate ; g : growth rate ; v : value of the company ; function (define sum (lambda (x) (fold + 0 x))) ; input (define n 5) (define r 0.15) (define g1 0.1) (define g2 0.05) (define d0 10000) ; calculating (define i (iota n)) (define d1 (* d0 (+ 1 g1))) (define df (map (lambda (x) (/ 1 (expt (+ 1 r) (+ x 1)))) i)) (define v5 (sum (map (lambda (x y) (* d1 x (expt (+ 1 g1) y))) df i))) (define d5 (* d1 (expt (+ 1 g1) 4))) (define v6 (/ (/ (* (+ 1 g2) d5) (- r g2)) (expt (+ 1 r) 5))) (define v0 (+ v5 v6)) ; output (print '5.12.scm) (print "r " r ) (print "g1 " g1) (print "g2 " g2) (print "d0 " d0) (print "d1 " (x->integer d1)) (print "df " (map (lambda (x) (/ (round (* x 1000)) 1000)) df)) (print "v5 " (x->integer v5)) (print "d5 " (x->integer d5)) (print "v6 " (x->integer v6)) (print "v0 " (x->integer v0)) ; end