UNB/ CS/ David Bremner/ teaching/ cs4613/ lectures/ lecture05/ my-cond2.rkt
#lang racket
(require [only-in plait test test/exn error print-only-errors])

(define-syntax my-cond
  (syntax-rules ()
    [(my-cond) (error 'my-cond "missing case")]
    [(my-cond [q0 a0] [q1 a1] ...)
     (if q0
         a0
      (my-cond [q1 a1] ...))]))

(define (sign n)
  (my-cond
   [(< n 0) "negative"]
   [(> n 0) "positive"]))
(test/exn (sign 0) "missing")