[racket] Visitor Pattern and Racket

From: Harry Spier (vasishtha.spier at gmail.com)
Date: Sun Jan 20 22:01:17 EST 2013

Good point!  I missed that.
Cheers, Harry

On Sun, Jan 20, 2013 at 8:39 PM, Stephen Bloch <bloch at adelphi.edu> wrote:
>
> On Jan 20, 2013, at 7:55 PM, Harry Spier <vasishtha.spier at gmail.com> 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
> sbloch at adelphi.edu
>

Posted on the users mailing list.