[rdnzl-devel] Re: New version 0.9.3

Dan Muller s8ctxw402 at sneakemail.com
Fri Feb 17 22:04:40 UTC 2006


Edi Weitz opined:
>
> On Fri, 17 Feb 2006 13:21:14 -0500, "Dan Muller" 
> <s8ctxw402 at sneakemail.com> wrote:
>
>> I'm thinking that a cleaner solution might be an optional
>> target-type argument to BOX, although that requires RDNZL to pick
>> the conversion needed.
>
> Yeah, maybe.  The advantage of my workaround is that you don't have to
> call BOX explicitely because RDNZL calls it as needed.  So, you should
> be able to just INVOKE a method with arguments like 3.4d2 and RDNZL
> will convert it to a System.Single automatically.

True. Although as you pointed out, you can run into trouble when both 
single and double floats are wanted by the same method. I think that 
this would work in general, because .NET would implicitly up-convert a 
single to a double again; but at that point some precision would be 
lost unnecessarily. One can also imagine situations where a method 
taking a single is overloaded by a method taking a double, and the 
latter becomes completely inaccessible -- just the opposite of what 
you'd want to have happen if your Lisp uses only doubles!

Also, I wonder about similar problems that could arise involving other types.

>> Or perhaps even more generally, a way to call a method of an
>> object or type with some arguments, but get the return value without
>> conversion, boxed if necessary. With that, I could have called
>> System.Convert.ToSingle and gotten a boxed Single back. Perhaps
>> calling it INVOKE-RETURNING-CONTAINER.
>
> But you'd have to do this for PROPERTY and FIELD as well.  And you'd
> lose the advantages of the special reader syntax.  A bit messy.

Again, true, but I'm thinking here mainly of low-level mechanisms with 
which one could address any similar problems, with precise control. How 
to make them convenient requires some more thought.

-- 
Dan

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.




More information about the rdnzl-devel mailing list