Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: The complete Rebol named argument passing

From: g:santilli:tiscalinet:it at: 1-Mar-2004 17:03

Hi Romano, On Monday, March 1, 2004, 4:19:32 PM, you wrote:
>> RPT> do-alt find /reverse false >> >> RPT> find/alt /reverse false >> >> You can't have that, the best we could get is:
RPT> I think that both are possible. I prefer the first one. There's no way to do that, REBOL needs to know the number of arguments to process BEFORE actually starting to collect them. Even if you were going to change the interpreter to allow something like that, you'd have two issues: 1) ambiguity and 2) not being expression based anymore. Ambiguity: f: func [x /ref] [...] g: func [x /ref] [...] f g x /ref Does /ref belong to F or G? You need to parenthesize all expressions. No more expression based: f x either cond [/ref] [none] would you expect this to work? If not, your proposal is useless, as you can't propagate refinements anyway. If yes, you have no way to know that you have to evaluate the next expression without knowing that it will return a REFINEMENT! value. If you evaluate it and it does not return a refinement, you have evaluated the expressions in the wrong order. If you don't and it would have returned a refinement you are calling the function without all arguments. To solve this you'd need to parenthesize all expressions. Regards, Gabriele. -- Gabriele Santilli <[g--santilli--tiscalinet--it]> -- REBOL Programmer Amiga Group Italia sez. L'Aquila --- SOON: http://www.rebol.it/