;;; 2.10b1.scm ;;; $Id: 2.10b1.scm 1.3 2024/10/27 08:22:15 s Exp $ (use gauche.sequence) ; for map-with-index (define (main args) ; procedure (define sum (^x (fold + 0 x))) ; input (define r 0.2) (define c (list -1e6 840e3 707500 387500 177500 50e3)) (define i (iota (length c))) ; calculating (define df (map-with-index (lambda (i x) (/ (expt (+ 1 r) i))) c)) (define pv (map * c df)) (define sum_pv (sum pv)) ; output (print "2.10b1.scm") (print "r= " r) (print "i " (map (^x (format "~10d" x)) i )) (print "c " (map (^x (format "~10d" (x->integer x))) c )) (print "df" (map (^x (format "~10,3f" x)) df)) (print "pv" (map (^x (format "~10d" (x->integer x))) pv)) (print "sum of pv= " (x->integer sum_pv)) 0) ;;; end