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

[REBOL] Re: [COLLECT] COLLECT function/Examples?

From: tim-johnsons:web at: 12-May-2006 13:59

Hi Ladislav: I've tried using this, but am unsure how. Can you give some examples? thanks tim * Ladislav Mecir <lmecir-mbox.vol.cz> [060512 06:46]:
> Gregg Irwin napsal(a): > > ; Accepts only word! and block! values for args now. > > > > ; Uses 'ins as the name for the first value in the function body. > > ; and its value is set just before the function is made (for > > ; visual context). > > > > > ; two comment typos corrected > > collect: func [ > [throw] > {Collects values, returning them as a series.} > 'emit [word!] "Word used to collect values" > block [block!] "Block to evaluate" > /into dest [series!] "Where to append results" > /only "Insert series values as series" > ] [ > ; Create a new context containing just one word (the EMIT > ; argument) and set the 'emit word to refer to the new context > ; word. Note the care taken to suppress possible conflicts and > ; undesired evaluations. > emit: reduce [emit] > emit: first use emit reduce [emit] > use [dst ins] copy/deep [ > ; copy/deep lets us use just as the fallback value [] here. > dst: any [:dest []] > ; make the function used to collect values. > ins: either only [[insert/only]] [[insert]] > set emit func [value [any-type!]] compose [ > (ins) tail :dst get/any 'value > get/any 'value > ] > do bind/copy block emit > head :dst > ] > ] > > -L > > -- > To unsubscribe from the list, just send an email to > lists at rebol.com with unsubscribe as the subject.
-- Tim Johnson <tim-johnsons-web.com> http://www.alaska-internet-solutions.com