[REBOL] Re: COLLECTing results
From: rotenca:telvia:it at: 24-Jul-2003 14:52
Hi Brett,
> Don't you just hate it when after testing, trying some more and some more
> testing you press Send and then test think "Oh no!". The last version worked
> for Repeat but not for Foreach - and I still don't know why. This one seems
> to work however.
Foreach makes copy/deep on the body block to recurse well (repeat does not
make it)
> collect: func [
> {Collects block evaluations, use as body in For, Repeat, etc.}
> block [block!] "Block to evaluate."
> /init result "Initialise the result series."
> /only "Inserts into result using Only refinement."
> ] [
> result: any [result make block! 100]
> reduce [
> 'head pick [insert insert/only] not only 'tail result to paren!
> block
> ]
> ]
this can also be:
reduce ['head pick [insert insert/only] not only 'tail result do block]
with a small change it can handle also paren! init value under last betas:
reduce ['head pick [insert insert/only] not only 'tail 'first reduce
[:result] do block]
---
Ciao
Romano