Re: [racket-dev] Adding flvector to match
I think you should do 2': Change racket/match to recognize patterns with #'flvector heads -- ie, use the binding for flvector from `racket/flonum` to determine if something matches. The use of symbolic names in match, rather than bindings, is a leftover rather than something we should keep adding to. Sam On Thu, Apr 17, 2014 at 6:48 PM, Neil Toronto neil.toro...@gmail.com wrote: It would be really handy for me right now to be able to match on flvectors, and I think it's useful enough for minimal Racket. I've already tried this option: 1. Export flvector as a match expander from racket/flonum but racket/match depends on racket/flonum somehow. So I looked through the match code and determined that this one would be pretty easy: 2. Change racket/match to recognize patterns with 'flvector head (The code is very clean; kudos to whoever last rewrote it. :D) I think #2 would at worst hijack someone's custom flvector match expander, but probably do the same thing or better (e.g. also handle ellipses). But in case it's worse than I think, I can always go with this: 3. Export flvector as a match expander from math/flonum Question for the match and syntax gurus: would doing #2 be safe enough, or should I do #3? Or have I got it backwards; i.e. is #2 actually safer than #3? Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Adding flvector to match
Great idea! Neil ⊥ On 04/17/2014 05:00 PM, Sam Tobin-Hochstadt wrote: I think you should do 2': Change racket/match to recognize patterns with #'flvector heads -- ie, use the binding for flvector from `racket/flonum` to determine if something matches. The use of symbolic names in match, rather than bindings, is a leftover rather than something we should keep adding to. Sam On Thu, Apr 17, 2014 at 6:48 PM, Neil Toronto neil.toro...@gmail.com wrote: It would be really handy for me right now to be able to match on flvectors, and I think it's useful enough for minimal Racket. I've already tried this option: 1. Export flvector as a match expander from racket/flonum but racket/match depends on racket/flonum somehow. So I looked through the match code and determined that this one would be pretty easy: 2. Change racket/match to recognize patterns with 'flvector head (The code is very clean; kudos to whoever last rewrote it. :D) I think #2 would at worst hijack someone's custom flvector match expander, but probably do the same thing or better (e.g. also handle ellipses). But in case it's worse than I think, I can always go with this: 3. Export flvector as a match expander from math/flonum Question for the match and syntax gurus: would doing #2 be safe enough, or should I do #3? Or have I got it backwards; i.e. is #2 actually safer than #3? Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev