5 ms·
I find `not in` highly dubious - it makes the expression grammar awkward and harder to parse. Is `not in` a two-token operator? Or is `not` an adverb in this
by qewrffewqwfqew 11y ago
I find `not in` highly dubious - it makes the expression grammar awkward and harder to parse. Is `not in` a two-token operator? Or is `not` an adverb in this context? What else resembles this?
To cite an alternatice, in Tcl, `in` is an operator and its negation is `ni`. A cute pun and echo of Monty Python that I'm disappointed Python didn't follow :).
- ben-schaaf 11y agoAnother alternative is the way D does it. Its the same idea as `not in` but instead of adding a 2 keyword operator and non-standard usage of negation (`not` instead of `!`) it is simply: `!in`
- Someone 11y agoYou should be happy, as Python 3 would have renamed it to "Ekke Ekke Ekke Ekke Ptang Zoo Boing!" As to the "what else resembles this"? I would turn it around and ask what else could resemble this. I'm not sure the conclusion would be that "not in" is a good thing, but not sure of the reverse, either: if x not = 3 looks weird, but I think I could grow to like it.
- efaref 11y agoWell, shell has the '-ne' operator, which is 'not equals' in a terser style. Really '!=' is just an attempt at rendering '≠' using only ASCII characters. They're a bit like digraphs and trigraphs in C/C++, except everyone is used to them. I wonder if Unicode is ubiquitous enough now that you could write a language where the real maths operators were used instead. What would that look like?
- Latty 11y agoScala allows using unicode arrows (→) in place of their ASCII version (->), but not things like '≠'. I'm currently using the Monoid font (https://larsenwork.com/monoid/ https://larsenwork.com/monoid/), which uses ligatures to achieve the visual effect of things like the not equals symbol, while the underlying code remains the same. It's a pretty nice work-around for current languages.
- yorwba 11y agoHaskell allows unicode in operators and there appear to be packages that implement aliases for the default ASCII versions. https://wiki.haskell.org/Unicode-symbols https://wiki.haskell.org/Unicode-symbols