Mercurial > prosody-hg
comparison util/iterators.lua @ 4386:ce769240f8ec
util.iterators: Add range(from, to)
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sun, 25 Sep 2011 00:20:43 +0100 |
| parents | bc139431830b |
| children | a01b7207cb37 |
comparison
equal
deleted
inserted
replaced
| 4385:c94167139f27 | 4386:ce769240f8ec |
|---|---|
| 118 return unpack(results[((count-1+pos)%n)+1]); | 118 return unpack(results[((count-1+pos)%n)+1]); |
| 119 end | 119 end |
| 120 --return reverse(head(n, reverse(f, s, var))); | 120 --return reverse(head(n, reverse(f, s, var))); |
| 121 end | 121 end |
| 122 | 122 |
| 123 local function _range_iter(max, curr) if curr < max then return curr + 1; end end | |
| 124 function range(x, y) | |
| 125 if not y then x, y = 1, x; end -- Default to 1..x if y not given | |
| 126 return _range_iter, y, x-1; | |
| 127 end | |
| 128 | |
| 123 -- Convert the values returned by an iterator to an array | 129 -- Convert the values returned by an iterator to an array |
| 124 function it2array(f, s, var) | 130 function it2array(f, s, var) |
| 125 local t, var = {}; | 131 local t, var = {}; |
| 126 while true do | 132 while true do |
| 127 var = f(s, var); | 133 var = f(s, var); |
| 140 if var == nil then break; end | 146 if var == nil then break; end |
| 141 t[var] = var2; | 147 t[var] = var2; |
| 142 end | 148 end |
| 143 return t; | 149 return t; |
| 144 end | 150 end |
| 151 |
