在布尔值是变量时应用布尔值有疑问吗? (单词问题)

时间:2020-09-23 05:17:56

标签: boolean racket

我有一个字问题-印刷一本书的每一页要花费20美分(0.2美元)。除此之外,您还必须购买平装本($ 1)或精装本($ 2.5)。写一个产生总成本(以美元为单位)的函数? 到目前为止,这是我的代码(在代码中,“ n”是页面数,“ cover?”是我的布尔变量。

(define (total-cost n cover?)  
  (cond
   [(paperback-cover? true) (+ 1 (* 0.2 n))]
   [(hardback-cover? true) (+ 2.5 (* 0.2 n))]))

由于某种原因,我的代码无法正常工作。有人可以帮我吗。

2 个答案:

答案 0 :(得分:0)

您可以做这样的事情

#lang racket

(define (total-cost n cover)  
  (if (equal? cover "paperback") (+ 1 (* 0.2 n)) (+ 2.5 (* 0.2 n)))
)

(println (total-cost 100 "paperback"))

(println (total-cost 100 "hardcover"))

答案 1 :(得分:0)

#lang racket

; order-form : number symbol -> number
(define (order-form pages cover-type)
  (let* ([price-per-page 0.2]
         [page-cost (* pages price-per-page)]
         [cover-cost
          (cond
            [(equal? cover-type 'hardback) 2.5]
            [(equal? cover-type 'paperback) 1])]
         [total-cost (+ page-cost cover-cost)])
    total-cost))


;;; TEST
(order-form 10 'paperback)
(order-form 10 'hardback)