From 4912f296ec86daab805011f38ce37863b88e6af5 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Thu, 3 Jun 2021 11:00:49 -0400 Subject: Finally nailed down my issue with 2-trains versus atop --- docs/commentary/problems.html | 2 ++ 1 file changed, 2 insertions(+) (limited to 'docs/commentary/problems.html') diff --git a/docs/commentary/problems.html b/docs/commentary/problems.html index 2c7c0964..d1dd2c17 100644 --- a/docs/commentary/problems.html +++ b/docs/commentary/problems.html @@ -139,6 +139,8 @@

Select chooses whether the left argument maps to right argument axes or selects from the first axis only based on its depth. Without prototypes an empty array has depth 1, so it selects no major cells. However, it could also select from no axes (a no-op) and in some contexts the other behavior would be surprising.

Unclear primitive names

Blanket issue for names that I don't find informative: "Solo", "Bins", "Find", and "Group".

+

Modifiers look looser than trains without spaces

+

Consider ˜. It's just a sequence of three functions so the use of rather than · is to highlight structure: - is more tightly bound so the suggestion is to consider this composition as a single entity. But in fact - is closer to ט than to , intuitively suggesting the opposite. Adding a space fixes it: - ט visually connects -. It's unfortunate that this is something the writer must do rather than something the notation encourages.

Tacit exports can leak data

One of the nice facets of BQN's module system is that it provides perfect encapsulation: if you have variables a and b in a namespace (or closure) initialized so that ab, and all exported operations maintain the property that ab, then that property will always be true. Well, not quite: if you define, say Inc IncA IncB to increase the values of both a and b by 𝕩, then Inc maintains ab, but IncA doesn't—and it can be extracted with •Decompose. This isn't too serious because it sounds impossible to do accidentally, and it's easy to protect against.

Strands go left to right

-- cgit v1.2.3