RE: Case/switch

new topic     » goto parent     » topic index » view thread      » older message » newer message

On 15 Feb 2002, at 13:46, Matthew Lewis wrote:

> 
> 
> > -----Original Message-----
> > From: SR.Williamson [mailto:writeneu at hotmail.com]
> 
> > Kat brought up case/switch. I'd love to see this become part of the
> > language.
> >
> > I was writing an artificial life program for Windows.
> > Basically, it was
> > a bunch of buttons in a grid. If a button was "hot", the
> > program would
> > check to see whether the button in the row above and to
> > either side was
> > "hot" to determine whether to make that button itself "hot".
> >
> > Well, as you can imagine, that works fine for the buttons in
> > the middle
> > of the grid. But when you get to the buttons in the grid
> > above, you have
> > to check to see if a button is at a window edge. So there are
> > a lot of
> > "if button1 = leftedge or button2 = rightedge" kind of stuff. It got
> > really tedious. The only think I could think was "This would
> > be so much
> > easier with a Case statement".
> >
> > Is there some easy way to do that that I'm missing?
> 
> My typical method for eliminating large if/elsif (ie, case) structures is
> using routine_id.  Then you can set up your condition[s] and the code to
> handle said conditions in an associative list.  It's easy to add or delete
> cases this way, and you don't end up with a massive piece of code for which
> you
> can't easily follow the flow/decision process.
> 
> Your example might look something like:
> 
> sequence condition, result
> 
> condition = { middle, leftedge, rightedge, topedge, bottomedge }
> result = { routine_id("do_middle"),.....}
> 
> Then, for your decision:
> 
> case = find( situation, condition )
> call_proc( result[case] )

Shouldn't this be in the official Eu help files? Karl, if this can be done in
two
lines of Eu, wouldn't it be easy as a command alias in the native code?

Kat

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu