HaloO, Yuval Kogman wrote:
One thing that is extraordinarily hard to do with the facilities we have today is finding the responsive optimum between laziness and eagerness.
Good, that you remind me to this subject! I wanted to ask the "same" question starting from more theoretical grounds. I know that eager and lazy evaluation are just the two extreme cases of the bounded buffer pattern: lazy = zero sized buffer, eager = infinite buffer. Sometimes the buffer is also called queue or pipe. IIRC, $Larry has mentioned a Pipe type which to me seems to be just the generic type where you configure the buffer/queue size. In multi-threaded (or connected processes) applications the buffer size needs tuning to balance responsiveness with throughput. Thus your gather proposal could just be a :buffer($size) adverb/trait in the slurpy list declaration and some auto-threading behaviour of the pipe operators ==> and <==. To me this is yet another reason why lists---and junctions---to me are more code like than data like. -- $TSa.greeting := "HaloO"; # mind the echo!