But then this (the example below) explicitly lists the refinements in the function body. I think the "ultimate" solution would process an arbitray list, as with a loop. It is fairly short though :) and IS a step up from 'if statements, esp for more than 2 refinements. - Michael Jelinek [EMAIL PROTECTED] on 09/15/2000 04:04:34 PM From: [EMAIL PROTECTED] on 09/15/2000 04:04 PM Please respond to [EMAIL PROTECTED] To: [EMAIL PROTECTED] cc: Subject: [REBOL] best means of passing refinements from main to helper function? Re:(2) Howdy, Michael: The following approach is exactly elegant, but it gets the job done and it's fairly short. I think it's kind of cute. -jeff REBOL [] deduction: func [ /use-month month-to-use /use-day day-to-use ][ rejoin [ "file-" either use-month [ month-to-use ] [ now/month ] either use-day [ day-to-use ] [ now/day ] ] ] main: func [ /use-month month-to-use /use-day day-to-use ] [ go?: func ['what /it][either it: get what [either true = it [what][it]] []] do reduce compose/deep [to-path [deduction (go? use-month) (go? use-day)] (go? month-to-use) (go? day-to-use)] ] > This seems to be an occasionally reoccurring topic. In > short I don't think anyone has come up with a simple > elegant way of doing this. A few of us have come up with > solutions which involve building the helper-function > call/refinements string. You might find, however, that you > would rather use a bunch of 'if statements. > > - Michael Jelinek > > > > > > [EMAIL PROTECTED]@MailAndNews.com> on 09/15/2000 > 03:30:03 PM > > From: [EMAIL PROTECTED]@MailAndNews.com on > 09/15/2000 03:30 PM > > Please respond to [EMAIL PROTECTED] > > Sent by: Terrence Brannon <[EMAIL PROTECTED]> > > To: [EMAIL PROTECTED] cc: Subject: [REBOL] best means of > passing refinements from main to helper > function? > > > I want to know the best way to propagate refinement > selections (or their lack) to a function which actually > does the processing for them.