From 834317151987193ed0470a58dbedc6c0090cadf1 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Wed, 23 Sep 2020 23:36:52 -0400 Subject: Add second tutorial, on lists --- docs/tutorial/expression.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs/tutorial/expression.html') diff --git a/docs/tutorial/expression.html b/docs/tutorial/expression.html index a3e8e3f0..6098e7a4 100644 --- a/docs/tutorial/expression.html +++ b/docs/tutorial/expression.html @@ -127,9 +127,9 @@

Addition and subtraction with affine characters have all the same algebraic properties that they do with numbers. One way to see this is to think of values as a combination of "characterness" (0 for numbers and 1 for characters) and either numeric value or code point. Addition and subtraction are done element-wise on these pairs of numbers, and are allowed if the result is a valid value, that is, its characterness is 0 or 1 and its value is a valid code point if the characterness is 1. However, because the space of values is no longer closed under addition and subtraction, certain rearrangements of valid computations might not be valid, if one of the values produced in the middle isn't legal.

Modifiers

Functions are nice and all, but to really bring us into the space age BQN has a second level of function called modifiers (the space age in this case is when operators were introduced to APL in the early 60s—hey, did you know the second APL conference was held at Goddard Space Flight Center?). While functions apply to subjects, modifiers can apply to functions or subjects, and return functions. For example, the 1-modifier ˜ modifies one function by swapping the arguments before calling it (Swap), or copying the right argument to the left if there's only one (Self).

-↗️
    2 -˜ 'd'  # Subtract from
+↗️
    2 -˜ 'd'  # Subtract from
 'b'
-    +˜ 3  # Add to itself
+    +˜ 3      # Add to itself
 6
 

This gives us two nice ways to square a value:

-- cgit v1.2.3