On Jan 20, 2013, at 7:55 PM, Harry Spier <[email protected]> wrote:
> Example 1: gives correct answer > (define shish-c (new onion% [sh (new onion% [sh (new lamb% [sh (new > skewer%)])])])) > (send shish-c only-onions? ) > > Example 2: gives incorrect answer > (define shish-c (new onion% [sh (new onion% [sh (new skewer% [sh (new > lamb%)])])])) > (send shish-c only-onions? ) > > Is it possible to make a contract that will flag example 2 as a > contract violation? Doesn't the constructor for lamb% expect an argument? In this data structure, the only base case is skewer%, so the only legal way to build a shish-kebab is with a skewer at the end. Stephen Bloch [email protected] ____________________ Racket Users list: http://lists.racket-lang.org/users

