The Racket Guide (7.2.2 Using define/contract and ->) says, "contract will 
always be checked on calls to deposit."

It appears that recursive function calls are not included in that 
statement? 
I wish they were, for teaching beginners.

Let me know if there is any (simple) way to do this. 

(require racket/contract)
(define/contract (f n)
  (-> number? number?)
  (cond [(number? n)
         (f "bad")]
        [else
         10]))

; I wish this would signal contract violation, but it gives the answer 10
(f 5)



-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to