It seems that if the second argument to if is not evaluated.  Thanks!

(define (try a b)
  (if (= a 0) 1 b))
;Value: try

; Looks like applicative order evaluation:
(try 0 (/ 1 0))
;Division by zero signalled by /.

; Looks like normal order evaluation from the left
(if (= 1 1) 1 (/ 1 0))
;Value: 1

; How is it implemented?
(pp if)
;Syntactic keyword may not be used as an expression: #[keyword-value-item
16]

Reply via email to