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

Reply via email to