I think extending define-primitive the right thing to do... just saying it isn't what I did.
On Mon, Oct 31, 2011 at 9:02 PM, Robby Findler <ro...@eecs.northwestern.edu> wrote: > Are you referring to the special case on line 2730 of teach.rkt when > you say posns? > > I think that means that I'd have to make the teaching language depend > on 2htdp/image, which doesn't seem right. > > I would have thought that the right thing would be to extend the > define-primitive protocol so that I can declare that 'color' is both a > function and a struct constructor and then match would not have to > special case 'color'. No? > > Robby > > On Mon, Oct 31, 2011 at 9:48 PM, Jay McCarthy <jay.mccar...@gmail.com> wrote: >> The HtDP match implementation has a list of such things and goes and >> finds them to turn them back into the non-primitive bound things. >> That's why it works with posns. >> >> Something better could be done, but for now you could add it to the white >> list. >> >> Jay >> >> On Mon, Oct 31, 2011 at 8:45 PM, Robby Findler >> <ro...@eecs.northwestern.edu> wrote: >>> Oh, I see why. 'color' is bound using define-primitive in order to >>> cooperate with the beginner language (and so that 'color' can be a >>> constructor). But doing that interferes with the usual information >>> bound by a struct that match picks up. >>> >>> I'm not sure what the right way to resolve this is. >>> >>> Robby >>> >>> On Mon, Oct 31, 2011 at 9:39 PM, Robby Findler >>> <ro...@eecs.northwestern.edu> wrote: >>>> Is make-color coming from 2htdp/image? I see that's not working (not >>>> sure why yet). >>>> >>>> Robby >>>> >>>> On Mon, Oct 31, 2011 at 9:34 PM, Adam Shaw <adams...@cs.uchicago.edu> >>>> wrote: >>>>> Thanks! That still doesn't work for color: >>>>> match: color does not refer to a structure definition >>>>> although it does work with my own custom color struct: >>>>> (define-struct clr (r g b)) >>>>> (match (make-clr 1 2 3) >>>>> [(struct clr (r g b)) (* r g b)]) >>>>> - Adam >>>>> On Oct 31, 2011, at 9:26 PM, Jay McCarthy wrote: >>>>> >>>>> One of the branches of the pattern language is >>>>> >>>>> | (struct id (pattern ...)) >>>>> >>>>> Your pattern should be >>>>> >>>>> (struct color (r g b)) >>>>> >>>>> >>>>> _________________________________________________ >>>>> For list-related administrative tasks: >>>>> http://lists.racket-lang.org/listinfo/users >>>>> >>>> >>> >> >> >> >> -- >> Jay McCarthy <j...@cs.byu.edu> >> Assistant Professor / Brigham Young University >> http://faculty.cs.byu.edu/~jay >> >> "The glory of God is Intelligence" - D&C 93 >> > -- Jay McCarthy <j...@cs.byu.edu> Assistant Professor / Brigham Young University http://faculty.cs.byu.edu/~jay "The glory of God is Intelligence" - D&C 93 _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users