Good point! I missed that. Cheers, Harry
On Sun, Jan 20, 2013 at 8:39 PM, Stephen Bloch <[email protected]> wrote: > > 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

