Probably because of our special parsing of & in ccall invocations.
-E

On Mon, Aug 18, 2014 at 7:14 PM, Stefan Karpinski <[email protected]>
wrote:

> Yeah, I forget exactly why you can't to that with & but there's some
> parsing ambiguity.
>
>
> On Mon, Aug 18, 2014 at 6:33 PM, ggggg <[email protected]> wrote:
>
>> Ok, thanks.  Although it doesn't seem to be the case for |, eg "|(true,
>> false)" works out of the box.
>>
>>
>> On Monday, August 18, 2014 4:24:31 PM UTC-6, Stefan Karpinski wrote:
>>
>>> This are some of those few operators that need parens to be used in
>>> function call syntax:
>>>
>>> julia> (&)(3,5)
>>> 1
>>>
>>> julia> (|)(3,5)
>>> 7
>>>
>>>
>>> This isn't required in unambiguous situations like as an argument to
>>> another function:
>>>
>>> julia> reduce(|, 0:8)
>>> 15
>>>
>>>
>>>
>>>
>>> On Mon, Aug 18, 2014 at 6:20 PM, ggggg <[email protected]> wrote:
>>>
>>>> Is there a named function that does what & does, eg "&(a,b) == a&b"? I
>>>> actually want a multi argument version like "$(a,b,c...)".  Also is that
>>>> the name of that function is not "&" and "& is not overloadable? The same
>>>> is not true of "|".
>>>>
>>>> *julia> **a = zeros(Bool,10);b=[randbool() for j=1:10];*
>>>>
>>>> *julia> **a&b==b*
>>>>
>>>> *false*
>>>>
>>>> *julia> **a|b==b*
>>>>
>>>> *true*
>>>>
>>>> *julia> **|(a,b)==b*
>>>>
>>>> *true*
>>>>
>>>> *julia> **&(a,b)==b*
>>>>
>>>>
>>>> *ERROR: unsupported or misplaced expression & *
>>>> *julia> **&(a,b) = a&b*
>>>>
>>>> *ERROR: syntax: invalid assignment location*
>>>>
>>>> Julia even seems to think & is a function
>>>>
>>>> *julia> **&*
>>>>
>>>> *& (generic function with 35 methods)*
>>>>
>>>>
>>>>
>>>
>

Reply via email to