[REBOL] Binding
From: robert:muench:robertmuench at: 18-Nov-2002 17:39
Hi, I have the following code:
forall-records: func [list predicate action /local object][
if any [none? list empty? predicate empty? action][return none]
list: select list 'values
predicate: bind/copy predicate 'list
action: bind/copy action 'list
; iterate through the whole list of values
; check if the first entry satisfies the predicate
; if so execute the action.
foreach [id object] list [
if do predicate [do action]
]
]
Within predicate and action I would like to have access to id and
object. And from action I would like to have access to the local
variables from the caller's context. I tried the following:
result: make block! []
forall-records graph/nodes [?? object][append result id]
Of course this doesn't work! Problem is that local object isn't
accessible (it's none). I thought that bind is not static (meaning: all
words in the block are bound to the words known until bind was called)
instead will give you access to all local words. But it seems this is
not the case.
Any idea how to solve it the smart way? Robert