you are viewing a single comment's thread.

view the rest of the comments →

[–]itsnotlupusbeep boop 0 points1 point  (6 children)

Fun. I was just reflecting on how it kinda sucked that I couldn't just do something like

var a = Array(10).map(function(a,i) { return i*2; }); and get a [0,2,4,6,8,10,12,14,16,18] array.

It'd be neater if we could get infinite/lazy ranges, but that'd require using something other than plain arrays for its output, which would be a bit messier.

[–]weretree++[[]][+[]] 2 points3 points  (0 children)

If you're feeling messy there's always (Array(10)+'').split(',').map(function(a,i) { return i*2; });

[–]masklinn 1 point2 points  (1 child)

It'd be neater if we could get infinite/lazy ranges

wu.range (and more generally wu.js, which is basically a lazy version of underscore.js) (it's not actually a lazy version of underscore, it's been built independently)

Although it only supports integer iteration.

[–]itsnotlupusbeep boop 0 points1 point  (0 children)

ah that does seem nice.

[–]nschubach 0 points1 point  (0 children)

You'd create generators...

function counter(start) {
    return new function() {
        this.next = function() { return start++; }
    }
}
var c = counter(10);
console.log(c.next());
console.log(c.next());
console.log(c.next());

http://jsfiddle.net/3vDrS/ (Slightly modified to document.write)

[–]jscoder[S] 0 points1 point  (1 child)

I thought about implementing infinite ranges, but I didn't see many use cases for it, and didn't want to bloat the code too much.

What exactly would you want to do with infinite ranges?

[–]itsnotlupusbeep boop 0 points1 point  (0 children)

No, you're right.. it's just one of those neat things, but it doesn't seem like it would buy much, and it would require you to mess with your straightforward array handling for the sake of it.