首页 > 代码库 > [HTDP] <2.3 字处理问题>

[HTDP] <2.3 字处理问题>

exercise_2.3.scm

#lang racket/base

;;; [HTDP] <2.3 字处理问题> <习题 2.3.1>
;;; <合约> tax : (number number number)->number
;;; <用途> 计算所得税
;;; <合约> netpay : (number number number)->number
;;; <用途> 计算所得税
(define RATE 0.15) ;; 个人所得税的税率
(define WAGE 12) ;; 每小时的工资
(define HOUR 310) ;; 一个月工作的时间

(define tax ; 计算所得税规则
  (lambda (hour wage rate)
    (* hour wage rate)))

(tax HOUR WAGE RATE) ; 计算所得税

(define netpay ; 计算税后所得规则
  (lambda (hour wage rate)
    (* hour wage (- 1 rate))))

(netpay HOUR WAGE RATE) ; 计算税后所得

;;; [HTDP] <2.3 字处理问题> <习题 2.3.2>
;;; <合约> sum-coins : (number number number number)->number
;;; <用途> 计算硬币的总价值
(define sum-coins
  (lambda (dollar1 dollar5 dollar10 dollar25)
    (+ (* dollar1 1) (* dollar5 5) (* dollar10 10) (* dollar25 25))))

(sum-coins 3 4 5 6)

;;; [HTDP] <2.3 字处理问题> <习题 2.3.3>
;;; <合约> total-profit : number->number
;;; <用途> 计算电影院的收入
(define PER-CAPITA 0.5) ; 每个观众的耗费
(define PRIME-COST 20) ; 播放一场电影的成本
(define CARFARE 5) ; 票价

(define total-profit
  (lambda (count)
    (- (* count (- CARFARE PER-CAPITA)) PRIME-COST)))

(total-profit 30)


[HTDP] <2.3 字处理问题>