4 ms·
For those who are curious, `...` is a placeholder value in Python called Ellipsis. I don't believe it serves any real purpose other than being a placeholder. Bu
by plus 1y ago
For those who are curious, `...` is a placeholder value in Python called Ellipsis. I don't believe it serves any real purpose other than being a placeholder. But it is an object and it implements `__eq__`, and is considered equal to itself. So `...==...` evaluates to `True`. When you prefix a `True` with `-`, it is interpreted as a prefix negation operator and implicitly converts the `True` to a `1`, so `-(...==...)` is equal to `-1`. Then, you add another prefix `-` to turn the `-1` back into `1`.
`--(...==...)--(...==...)` evaluates to `2` because the first block evaluates to 1, as previously mentioned, and then the next `-` is interpreted as an infix subtraction operator. The second `-(...==...)` evaluates to `-1`, so you get `1 - -1` or `2`.
When chaining multiple together, you can leave off the initial `--`, because booleans will be implicitly converted to integers if inserted into an arithmetic expression, e.g. `True - -1` -> `1 - -1` -> `2`.
> There should be one-- and preferably only one --obvious way to do it.
This article is obviously completely tongue-in-cheek, but I feel the need to point out that this sentence is not meant to be a complete inversion of the Perl philosophy of TIMTOWTDI. The word "obvious" is crucial here - there can be more than one way, but ideally only one of the ways is obvious.
- pletnes 1y agoNumpy actively uses … to make slicing multidimensional arrays less verbose. There are also uses in FastAPI along the lines of «go with the default».
- abuckenheimer 1y agoexcellent explanation, to add to this since I was curious about the composition, '%c' is an integer presentation type that tells python to format numbers as their corresponding unicode characters[1] so '%c' * (length_of_string_to_format) % (number, number, ..., length_of_string_to_format_numbers_later) is the expression being evaluated here after you collapse all of the 1s + math formatting each number in the tuple as a unicode char for each '%c' escape in the string corresponding to its place in the tuple. [1] https://docs.python.org/3/library/string.html#format-specification-mini-language https://docs.python.org/3/library/string.html#format-specifi...
- nomel 1y agoExpanding on this a little, I will be replacing all occurrences of 2 with two blobs fighting, with shields: >>> 0^((...==...)--++--(...==...))^0 2
- rmah 1y ago>> There should be one-- and preferably only one --obvious way to do it. Except for package management, of course. There, we need lots and lots of ways.
- blooalien 1y agoAnd apparently string formatting which should have an ever growing number of ways to handle it. :shrug: