Re: [Scheme-reports] [r6rs-discuss] [scheme-reports] Scheme pattern matching & R*RS Vincent Manis (23 Jan 2011 01:04 UTC)

Re: [Scheme-reports] [r6rs-discuss] [scheme-reports] Scheme pattern matching & R*RS Vincent Manis 23 Jan 2011 01:04 UTC

On 2011-01-22, at 16:48, Andre van Tonder wrote:

> On Sat, 22 Jan 2011, John Cowan wrote:
>
>> Andre van Tonder scripsit:
>>
>>> You don't really gain much since you would still need to say something like
>>>
>>>  (import (except (rnrs) + - * - /)
>>>          (flonum-operations))
>>
>> Yes, that's what I mean by a single point of messiness.  But the alternative
>> is to use prefixed names at *every* point of call, without even the option
>> of changing or shortening the prefix.  IMHO that is a worse mess.
>
> Technically, you can change or shorten it as follows:
>
>   (import (rename (flonum-operations) (fx+ +) (fx- -) (fx* *) .......))

If I have syntax-case or some other macro system, I can write a macro

  (in-floating-point
    (/ (+ (- b) (sqrt discriminant)) (* 2.0 a)))

that does the renaming inside the form. I would argue that this is clearer, and allows flonum arithmetic to coexist in the same piece of code with fixnum or generic arithmetic. It definitely beats renaming.

-- vincent
_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports