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

(define-syntax or-2
  (syntax-rules ()
    [(_ e1 e2)
     (if e1 e1 e2)]))

(test (or-2 (member 'y '(x y z)) "not found") '(y z))
(define v #f)
(define (toggle) (set! v (not v)) v) ;; side-effect
(test (or-2 (toggle) 'else) #t)