Skip to content

Latest commit

 

History

History
19 lines (11 loc) · 1.12 KB

valences.md

File metadata and controls

19 lines (11 loc) · 1.12 KB

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'