On Wed, 1 Apr 2009, John Macdonald wrote:
> If I understand correctly, (which is by no means assured) a function
> call with a junction as an argument generally acts as if it were
> autothreaded.  So:
>
>       $x = any(1,2,3);
>       $y = f($x);
>
> should work like:
>
>         $y = any( f(1), f(2), f(3) );
>
> Right?

In general yes.

However if "f" involves some kind of "truth inversion" then logically

        f(any(@x)) == all(map.assuming(&f).(@x))
and
        f(all(@x)) == any(map.assuming(&f).(@x))

I have in mind something like these in the "standard preamble":

        prefix:«!»(Bool)           does(junctive_inversion)
        prefix:«not»(Bool)         does(junctive_inversion)
        infix:«ne»(String,String)  does(junctive_inversion)
        infix:«!=»(Num,Num)        does(junctive_inversion)
        infix:«!==»(Object,Object) does(junctive_inversion)

(Excuse the rather lose syntax, but I hope you get the idea.)

-Martin

Reply via email to