Here is a small argument: in SymPy the negation prints with that character. 
So to match the output I was hoping
to utilize (U+00AC)  as ! for input. Easy to work around, but it might be 
nice to have.

On Wednesday, July 16, 2014 4:04:07 PM UTC-4, Steven G. Johnson wrote:
>
>
> On Wednesday, July 16, 2014 3:40:31 PM UTC-4, Ben Arthur wrote:
>>
>> julia> const ∪ = union
>>
>
> ∪ is already defined to union in Julia.
>
> julia> const ¬ = !
>>
>> ERROR: syntax: invalid character "¬"
>>
> The ¬ character (U+00AC) is in category Sm (math symbols), and Julia does 
> not allow all possible math symbols as identifier characters.  The reason 
> is that, for each math symbol, we need to individually decide whether it 
> will be parsed as part of an identifier or as an operator.  And, if it is 
> parsed as an operator, we need to decide the precedence.
>
> In consequence, there is a whitelist of math symbols allowed in identifiers
>       
> https://github.com/JuliaLang/julia/blob/master/src/flisp/julia_extensions.c#L51-L93
> and another whitelist of symbols treated as operators
>       
> https://github.com/JuliaLang/julia/blob/master/src/julia-parser.scm#L6-L22
> Both of these lists will probably grow over time.
>
> In the case of ¬, I think it would make sense to parse it as a prefix 
> operator (with the same precedence as !), and probably to define
>      const ¬ = !
>
> I actually thought about ¬ when I recently whitelisted a bunch of unicode 
> math symbols in Julia.   My hesitation was that I'm not sure what useful 
> purpose ¬ would serve in Julia code, other than as a synonym for !.   It's 
> not any shorter than !, and in general in Julia we have tried to avoid 
> introducing redundant syntax (e.g. "and" and "or" synonyms for && and 
> ||).   Following the "when in doubt, leave it out" philosophy, I therefore 
> left ¬ out of the patch.
>
> However, if an argument can be made for the utility of ¬ in Julia, it 
> would be easy to include.
>
> --SGJ
>

Reply via email to