On Sat, May 6, 2017 at 2:07 AM, Bakul Shah <bakul@bitblocks.com> wrote:
Note that a similar approach was implemented by Iverson in
APL. In fact a shell pipeline has a lot in common with array
programming!

Iverson in essence built a whole workshop with a set of simple
but powerful standard tools (functions and higher order
functions).  The same has been carried on in follow on array
languages such as j and k and q languages.  Many of these
array functions are directly applicable to stream processing.
In contrast unix shells provide a very shallow glue layer.

Interesting analogy. I always think that function composition in lazy languages like Haskell reminds me of shell pipelines. I know that Doug swims in those waters; perhaps he will correct me if he feels that's a poor analogy?

Carrying it forward a bit, however, I'm always amazed (and a little appalled) at how the kids always think that they invented Rock n' Roll. Ideas are continually recycled, but it's the rare recycler indeed who seeks out the prior art on rediscovering one of the good ones. "Look! You can filter and transform this data!" "...but I've been doing that at the shell nearly every day for the past quarter of a century...." "...this one goes to 11."

        - Dan C.