Thread: [Hecl-devel] Hecl switch command
Brought to you by:
davidw
From: Wolfgang S. K. <wol...@da...> - 2006-10-17 07:31:12
|
We should consider adding a case/cond/switch command to hecl since sequences like: if {= $idx 0} { $menu1 setcurrent; } elseif {= $idx 1} { $menu2 setcurrent; } elseif {= $idx 2} { $menu3 setcurrent; } elseif {= $idx 3} { $menu4 setcurrent; } elseif {= $idx 4} { fillprofil; $menu5 setcurrent; } elseif {= $idx 5} { dosomething } elseif {= $idx 6} { dootherthing } elseif {= $idx 7} { showinfoform; } are hard to read and painful to maintain. -- Wolfgang Kechel mailto:wol...@da... data2c GmbH http://www.data2c.com Bierstadter Straße 7 Fax: +49-(0)611-1731-31 D-65189 Wiesbaden Phone: +49-(0)611-1731-611/+49-(0)174-3454260 |
From: David W. <dav...@gm...> - 2006-10-17 07:44:34
|
> We should consider adding a case/cond/switch command to hecl since > sequences like: Agreed. The question is: Does it simply match values, or does it evaluate code? switch {$i x} { {< $x 10} { .... } {= $x 10} { .... } {> $x 10} { .... } } ... or something like that. Ruby's switch is a nice example of something a bit more modern than what C gives you. -- David N. Welton - http://www.dedasys.com/davidw/ Linux, Open Source Consulting - http://www.dedasys.com/ |
From: Wolfgang S. K. <wol...@da...> - 2006-10-17 09:39:36
|
David Welton wrote: >> We should consider adding a case/cond/switch command to hecl since >> sequences like: > > Agreed. > > The question is: > > Does it simply match values, or does it evaluate code? > > switch {$i x} { > {< $x 10} { .... } > {= $x 10} { .... } > {> $x 10} { .... } > } > > ... or something like that. Ruby's switch is a nice example of > something a bit more modern than what C gives you. > To be consistent, it should behave like if, i.e. evaluate code -- Wolfgang Kechel mailto:wol...@da... data2c GmbH http://www.data2c.com Bierstadter Straße 7 Fax: +49-(0)611-1731-31 D-65189 Wiesbaden Phone: +49-(0)611-1731-611/+49-(0)174-3454260 |
From: David W. <dav...@gm...> - 2006-10-23 09:16:11
|
> > Does it simply match values, or does it evaluate code? > > > > switch {$i x} { > > {< $x 10} { .... } > > {= $x 10} { .... } > > {> $x 10} { .... } > > } > > ... or something like that. Ruby's switch is a nice example of > > something a bit more modern than what C gives you. > To be consistent, it should behave like if, i.e. evaluate code Ok, that makes sense. I think to be something 'more than if', should also have fall through semantics (it keeps checking conditions unless you stop it with 'break')? Perhaps this is also something that could be conditionally compiled into only the larger versions of Hecl, as you can do the same thing with 'if'? -- David N. Welton - http://www.dedasys.com/davidw/ Linux, Open Source Consulting - http://www.dedasys.com/ |