Suppose we are writing software for the embedded processors that control the turnstiles on the T (the Boston subway, that is). During the switchover from tokens to the new ``Charlie'' stored-value mag-stripe cards, the turnstiles should handle both tokens and Charlie cards. So we use the following data definition to represent payments in either form:
(define-struct magstripe-card (value)) ;;; A Payment is one of ;;; - 'token ;;; - (make-magstripe-card Number)
Develop the template for a function that takes a Payment as its argument.
;;; Grader: Ryan
(define (payment-template pmnt)
;; A COND with 2 arms -- [2pts]
(cond [(symbol? pmnt) ... pmnt ...] ; SYMBOL? [1pt]
[else ... (magstripe-card-value pmnt) ...])) ; accessor [1pt]