[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