Getting back to your original question: proposals about basic features of the language are OK, but note that at this point the barrier to entry is high: they have to give a substantial advantage. In any case, putting in some work beforehand about understanding the language as is usually pays off.
@Tamas_Papp
Fine, and why we could not expand && and || with the same trick and additionally use && and || as a function of two args like for numeric comparisions?
I thought & and | was binary only. Ok but the use of
&(true, false) gives me
ERROR: syntax: malformed expression
Stacktrace:
[1] macro expansion at ./REPL.jl:97 [inlined]
[2] (::Base.REPL.##1#2{Base.REPL.REPLBackend})() at ./event.jl:73
Well, booleans are single bit binary number so it works exactly the same.
You can also just use it as operator
And yet another reason &&/|| shouldnât be functions (and to a less degree why allow multiarg < can be confusing) is that people will want to overload them. However, that overload will either not be called when itâs used as operator or itâll conditionally turn off short circuit (C++) and both are really bad options (the latter being especially bad for a dynamically typed language like julia). Of course for comparison, you can already define multi-arg version thatâll not get called in a < b < c ...
Usually not, until someone overloads multiarg <. Itâs not really new although defining it in base will encourage this thought. Itâs a bit unsatisfying but Iâm kind of OK either wayâŚ