[racket-dev] Adding flvector to match

From: Neil Toronto (neil.toronto at gmail.com)
Date: Thu Apr 17 19:18:16 EDT 2014

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.toronto at 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


Posted on the dev mailing list.