diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2022-04-14 21:45:05 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2022-04-14 21:45:05 -0400 |
| commit | 2528ec5e75daa358162619cc3a704e6bdf88a2c8 (patch) | |
| tree | 3589e4e1e87605d2efd30d4e3d90f7cedfdfeffd /doc/valences.md | |
| parent | 7273e5bec783772f6d61e056b5c138c70fd58663 (diff) | |
Documentation for Valences
Diffstat (limited to 'doc/valences.md')
| -rw-r--r-- | doc/valences.md | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/doc/valences.md b/doc/valences.md new file mode 100644 index 00000000..7c2c9d59 --- /dev/null +++ b/doc/valences.md @@ -0,0 +1,19 @@ +*View this file with results and syntax highlighting [here](https://mlochbaum.github.io/BQN/doc/valences.html).* + +# Valences + +<!--GEN combinator.bqn +DrawComp β"β" +--> + +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](tacit.md) equivalent of a block function with [two bodies](block.md#multiple-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' |
