aboutsummaryrefslogtreecommitdiff

View this file with results and syntax highlighting here.

Valences

Every BQN function can be called with one or two arguments, possibly doing completely different things in each case. The Valences (⊘) 2-modifier grafts together a one-argument function 𝔽 and a two-argument function 𝔾, with the resulting function calling one or the other as appropriate. It's the tacit equivalent of a block function with two bodies. So the function {÷𝕩 ; 𝕩-𝕨} can also be written ÷⊘(-˜). A full definition of Valences as a block is {𝔽𝕩;𝕨𝔾𝕩}.

      -⊘+ 6  # - side

    3 -⊘+ 2  # + side

Valences provides one way to check whether 𝕨 is present in a block function. The expression 𝕨0⊘1𝕩 always ignores the values of the arguments, resulting in 0 if 𝕨 isn't given and 1 if it is (if you want 1 or 2, then β‰ π•¨β‹ˆπ•© is shorter, but I'm not sure if I like it).

        {𝕨0⊘1𝕩} 'x'

    'w' {𝕨0⊘1𝕩} 'x'