Hi Romano,

>...but i agree, the :arg notation is never used and it requires a reference to a
>value instead of the "value itself", so it is not totally "correct" to be used
>it in context like this.
>
>About Scheme people, if they would speak "in general", they could be right: we
>cannot create an anti :do and anti :make which work in every situations, but
>if they speak only of strict bolean functions, i think they are wrong ;-)
>  
>
That's the point I was prepared to make :-) If we translate "a function 
returning boolean" to Rebol as a function always returning Logic! (for 
any input), then we are safe as you said, because DO (as well as MAKE) 
sometimes return different datatypes.

>...
>yes, i forgot to delay the get/any insertion after the bind to the function
>context.
>
>there are many modes to do it, and this is one of them:
>  
>
...

yes. To present a solution, that looks as simple as possible, we can write:

anti: func [f [any-function!] /local exec] [
    exec: func [block] reduce ['not 'apply 'first reduce [:f] 'block]
    func load mold third :f reduce [:exec first :f]
]

, where the only missing part is an APPLY function, which takes a block 
of words and passes their values to the function. An easy ;-) exercise 
for the reader.

-L

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.

Reply via email to