Streams library 2.0 development, part 1

So, the variant in parentheses is base one, like a Turing machine; to know whether the (I guess) standard dialect is truly base five we have to see how it says twenty-five. (Do they say five five times, or do they have a word for squared?)

Binary would not just be harder to learn, but also harder to speak, since numbers require more digits in binary. Of course higher bases also have a cost, in the number of digit names you have to remember. Some people have made a mathematical argument that the most economical tradeoff between these costs would be base e, and so we should use trinary, the closest integer base to e.

How about this:

(Never mind the block color; I just like baby blue. :~) ) I think maybe it's faster this way?

MONITOR needs a mention in its help screen text that it breaks the space efficiency of streams by constructing a list at the same time.

UNIQUES: We have a sort of standard for handling the question of which version to show by using the fast version and also including the simple version as a detached script in the block's script editor. (The detached script isn't runnable unless you reattach it to the header block, to bind its formal parameters.)

In this section of the fast implementation


why don't you just use HISTORY as the second input to the recursive call? HEAD is already included in HISTORY, in this case. That change would speed up future calls to CONTAINS by shortening HISTORY.

PROCESS/PROJECT: Yeah I get confused trying to figure out why they're different. Also I really want to talk you out of the right to left processing; that makes sense, and falls out naturally, when you actually compose functions by physically inserting one block in the input slot of another, but when you have a variadic function input, I expect it to behave like PIPE, which also has the virtue of being simple to implement:

STREAM CASCADING: I like the idea a lot. I think the INCLUSIVE input makes the block significantly harder to understand, and you can always just take TAIL OF STREAM of the result if you don't want to include the starting value.