What's ironic is the current "major" implementation of APL, Dyalog, doesn't optimize generation and processing of large vectors by treating them as streams. IOW, creating a sequence 1 to 1 million actually takes up 1 million * sizeof(double) bytes. It's sorely disappointing.
Which is odd, because that optimization has been known in the APL community for a long time. Edit: They probably have their reasons for not including it. I don't know anything about the Dyalog implementation internals.
See e.g. Abrams's "An APL Machine" (http://www.slac.stanford.edu/pubs/slacreports/slac-r-114.htm...) from 1970, where he describes them as 'drag-along' and 'beating'. Essentially, lazy evaluation, but done in bursts to take advantage of many of APL's other properties.
I'm currently working on adding this to Kona (http://github.com/kevinlawler/kona), part of a virtual-machine-based reworking of the implementation.