Inconsistencies with available assignment operators
#56.821 aberto em 13 de dez. de 2024
Métricas do repositório
- Stars
- (48.709 stars)
- Métricas de merge de PR
- (Mesclagem média 23d 11h) (145 fundiu PRs em 30d)
Description
Most of the basic "arithmetic" operators support assignment operators, where something like a += 5 is equivalent to a = a + 5. However, the presence of these seems to be somewhat inconsistent and a couple useful use-cases are missing. One use case I've ran into recently, when working with immutable structures, is wanting to update the value of a variable in-place in a similar fashion, but when applying arbitrary functions. For instance, something like
a = f(a)
or even
a = f(g(a))
The |> operator makes the latter a bit nicer to express, as
a = a |> g |> f
But it would be convenient to be able to do something like
a |>= g ∘ f
or the like instead. Furthermore, there are inconsistencies even among the more "normal" infix operators in terms of which support assignment operators; while ⊼, ⊽, and ⊻ are all infix operators (giving bitwise nand, nor, and xor respectively), only ⊻= is a valid assignment operator, which feels wacky.