I’m posting this first in the forum to see response before posting as a formal issue.
Proposal
This is a proposal to introduce a new keyword ends
(or endall
) as a terminal point to resolve the end of nested loops|conditionals
.
Why
It’s a common code occurrence to have multiple levels of loops and/or conditionals, which require separate end
keywords to designate their termination points. The end
statements themselves are merely for syntactic purposes.
It would be a benefit to programmers, and code readers, to be able to produce|read more concise code, by reducing the code noise
of these nested multiple end
keywords with a shorter|cleaner syntax.
Thus, I propose creating the keyword ends as a shorter|cleaner syntax to replace having to write multiple end
keywords.
Example
Below is an example of real code which performs nested loops. With “standard” format it looks like this.
def render(scene, image, screenWidth, screenHeight)
screenHeight.times do |y|
screenWidth.times do |x|
color = self.traceRay(....)
r, g, b = Color.toDrawingColor(color)
image.set(x, y, StumpyCore::RGBA.from_rgb(r, g, b))
end
end
end
However, from the point of view of the parser, these are all legal|equivalent.
def render(scene, image, screenWidth, screenHeight)
screenHeight.times do |y|
screenWidth.times do |x|
color = self.traceRay(....)
r, g, b = Color.toDrawingColor(color)
image.set(x, y, StumpyCore::RGBA.from_rgb(r, g, b))
end end end end end end
end end end
end end end
This proposal would allow this type of code to be written simply as:
def render(scene, image, screenWidth, screenHeight)
screenHeight.times do |y|
screenWidth.times do |x|
color = self.traceRay(....)
r, g, b = Color.toDrawingColor(color)
image.set(x, y, StumpyCore::RGBA.from_rgb(r, g, b))
ends
Pros
- code conciseness
- better readability
- no whitespace dependencies
- no conflict with legacy code
Cons
No technical implementation restrictions I can think of.
Maybe alternative name (endall
)?
Thanks for consideration.