Data Definitions for Book
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; REPRESENTATION: A Book is represented as a struct (make-book isbn title author publisher cost price on-hand thickness) with the following fields: INTERP: isbn : ISBN is the international standard book nuber title : String (any string will do) is the title author : String (any string will do) is the author publisher : String (any string will do) is the publisher cost : NonNegInt is the cost to the bookstore (how much the bookstore pays the publisher for a copy) price : NonNegInt is the price (how much the bookstore charges a customer for a copy) on-hand : NonNegInt is the number of copies on hand thickness : PosReal is the thickness of the book (how much space it occupies on the shelf), in cm IMPLEMENTATION: (define-struct book (isbn title author publisher cost price on-hand thickness)) ;;; templates omitted.... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; An Inventory is a BookList WHERE: the list is sorted in ascending order by ISBN, and there are no duplicate ISBN's in the list. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; An Order is a LineItemList WHERE: there are no duplicate ISBNs in the order ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; A LineItem is represented as a struct (make-line-item isbn ncopies) with the following fields: INTERP: isbn : ISBN is the isbn of the book being ordered ncopies : NonNegInt is the number of copies being ordered IMPLEMENTATION: (define-struct line-item (isbn ncopies)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ISBN is unspecified, but we assume we are given a function isbn=? : ISBN ISBN -> Bool RETURNS true iff its two arguments represent the same ISBN ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Last modified: Thu Sep 28 20:23:20 Eastern Daylight Time 2017