#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")