(use srfi-1) (define-constant genesis-subsidy 300000) (define-constant minimum-subsidy 30000) (define-constant genesis-height 0) (define-constant maximum-height 500000) (define (get-subsidy height) (let ((num (- genesis-subsidy height))) (if (>= num minimum-subsidy) num minimum-subsidy))) (define-constant subsidy (map get-subsidy (iota (- maximum-height genesis-height) genesis-height))) (define (sum-subsidy maximum) (if (= maximum 0) (list-ref subsidy 0) (+ (list-ref subsidy maximum) (sum-subsidy (- maximum 1))))) (define-constant total-subsidy (map sum-subsidy (iota (- maximum-height genesis-height) genesis-height))) ; (printf "~A\n" (get-subsidy 500000))