Our long-ago LazyList extension worked something like your code. The trouble with that approach is that you need to add to it every function you want to support. filter, find, take, etc. would all need dedicated code.
I'd prefer to have some generic way to loop and simply declare caveat emptor for cases where a user did something crazy like trying to zip an infinite generator with a finite list.
But to do this would probably involve rewriting every list function to handle a more abstract notion of itrtation. It's certainly possible, and write likely worth doing, but it's a big job.
If we were supporting es6 only, I'd happily replace our while loops with for-of ones and be done with it. But I don't see anything so convenient at the moment.
I'm not sure. I'd like to see how well it might work.
i'm quite happy with babel for my projects at work at least
I'm very happy with Babel for creating working code. The question, though, is how readable us the code it generates?
@scott-christopher I don't think chain is right there.
the babel transpilation for for...of loops is quite ugly looking but other than that it's fine especially when the code is as vanillajs heavy as ramda is.
@CrossEye that's precisely what Traversable gives you. The ability to write the vast majority of iterations once and forall. If a data type has traverse, you can implement almost all of what ramda provides for arrays.
it's kind of become the defacto for compiling js as of late
but its documentation is pretty much non-existent.
What other options are there for compiling js that have halfway decent documentation?
I don't think that there is any worthwhile alternative
Well at least not that I know. Babel has a ton of support
@joneshf: of course, Iterable is similar, with some advantage of language support.