CS 5010: Guided Practice 4.3: Computing on Lists of Structures
Starting with
04-2-books.rkt
(from this week's examples), design the following functions:
;; inventory-total-value : Inventory -> Integer
;; GIVEN: a Inventory
;; RETURNS: the value of all the copies on hand of all the books in the
;; given Inventory
;; (inventory-total-value lob1) = 390
(begin-for-test
(check-equal?
(inventory-total-value empty)
0
"value of the empty inventory should be 0")
(check-equal?
(inventory-total-value inv1)
390
"value of inv1 should be 390"))
;; books-out-of-stock : Inventory -> Inventory
;; GIVEN: a list of books
;; RETURNS: a list of the books that are out of stock in the given Inventory
;; Example:
;; (books-out-of-stock inv1) =
;; (list
;; (make-book "Shakespeare" "Hamlet" 0 2)
;; (make-book "Shakespeare" "Macbeth" 0 10))
Are these the only reasonable contracts for these functions?