JuliaLang/julia

Inconsistencies with available assignment operators

Open

#56.821 aperta il 13 dic 2024

Vedi su GitHub
 (16 commenti) (0 reazioni) (0 assegnatari)Julia (5773 fork)batch import
designduplicatefeaturehelp wanted

Metriche repository

Star
 (48.709 star)
Metriche merge PR
 (Merge medio 23g 11h) (145 PR mergiate in 30 g)

Descrizione

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.

Guida contributor