That works, too.

~~ Robert.

John Cowan wrote:
> On Sun, May 10, 2009 at 3:59 PM, Robert Fischer
> <robert.fisc...@smokejumperit.com> wrote:
>> When I say "argument typing", I meant having a single "function" class and 
>> leaving the number of
>> arguments to being an implementation detail handled by the type of the 
>> argument class.  The reason
>> is because function classes usually do some fairly heavy lifting which 
>> shouldn't be repeated for the
>> N number of functions.
> 
> Ah, I see.  No, this function class doesn't expose anything except the
> ability to apply one of its members to an argument list.  Trivial.
> 
> I'm not even sure I'm going to need need more than one class.  There
> are three plausible interfaces to each function: direct call (known
> function, no need for a Function object), funcall (unknown function
> applied to a known number of arguments), and apply (unknown function
> applied to an unknown number of arguments).
> 
> It's trivial to do funcall in terms of apply, but it does mean
> constructing and destructing the argument list.  On the other hand,
> providing three interfaces instead of two means extra complexity and
> error recovery.  So I may just go with a single Function class
> providing only an apply interface.
> 
>> ~~ Robert.
>>
>> John Cowan wrote:
>>> On Sat, May 9, 2009 at 11:06 AM, Robert Fischer
>>> <robert.fisc...@smokejumperit.com> wrote:
>>>> John Cowan wrote:
>>>>>> Depending on your schema of call types, you'll want to choose between
>>>>>> grouping call types on interface types vs. one call type per interface
>>>>>> type.
>>>>> Since the arguments and returns are all Object, I think all I need is
>>>>> one class per arity: Function0, Function1, Function2, ...  FunctionN,
>>>>> which last takes an Object[] of arguments.
>>>>>
>>>> I'd recommend having a Function<ARG_T extends ArgumentType> and abstract 
>>>> away the argument typing.
>>> The language is dynamically typed, so Object really is all there is.
>>>
>>>> ~~ Robert Fischer.
>>>> Grails Training        http://GroovyMag.com/training
>>>> Smokejumper Consulting http://SmokejumperIT.com
>>>> Enfranchised Mind Blog http://EnfranchisedMind.com/blog
>>>>
>>>> Check out my book, "Grails Persistence with GORM and GSQL"!
>>>> http://www.smokejumperit.com/redirect.html
>>>>
>>>
>>>
>> --
>> ~~ Robert Fischer.
>> Grails Training        http://GroovyMag.com/training
>> Smokejumper Consulting http://SmokejumperIT.com
>> Enfranchised Mind Blog http://EnfranchisedMind.com/blog
>>
>> Check out my book, "Grails Persistence with GORM and GSQL"!
>> http://www.smokejumperit.com/redirect.html
>>
> 
> 
> 

-- 
~~ Robert Fischer.
Grails Training        http://GroovyMag.com/training
Smokejumper Consulting http://SmokejumperIT.com
Enfranchised Mind Blog http://EnfranchisedMind.com/blog

Check out my book, "Grails Persistence with GORM and GSQL"!
http://www.smokejumperit.com/redirect.html

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to jvm-languages@googlegroups.com
To unsubscribe from this group, send email to 
jvm-languages+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to