shinesolutions/jazz

For ... Until Loop

sbrinkmann opened this issue · 5 comments

A loop which goes trough a defined amount of numbers, would be very helpful.

A simple example

 {for number from 0 until 10}
      <p>{number}</p>
 {end}

More complex example with stepwidth

 {for number from 0 until 10 step 2}
      <p>{number}</p>
 {end}

You can probably implement this using synchronous functions and the existing foreach construct:

{foreach x in @range(0, 10)}
...
{end}

where the range function looks something like:

function range(from, to) {
var r = [];
for (var i = from; i < to; i++) {
r.push(i);
}
return r;
}

You could even add logic for an optional step parameter with a few extra lines of code.

Does that work?

I did'nt know that synchronous are methods are also implemented and that I can call them within the foreach loop. I will try, if this acceptable for me.

On the other hand would you merge my change into you library if I implement a loop functionality as it is shown in my first post above?

It feels unnecessarily heavy-handed to add extra syntax to the language to support this, but if @cliffano or @nomiddlename have any strong opinions here I might be swayed.

On the other hand, if you're keen to simply contribute to the language I can think of some small missing features in jazz that might make good first bugs?

I'd say a library of standard functions (and some documentation of examples like the above) would be better than extra keywords.

Mind you, I'm still reeling from the idea that someone else is using jazz :)

Haha. Makes two of us! ;)