On Oct 27, 2008, at 8:21 AM, Maciej Stachowiak wrote:

A more functional multiple-case dispatch form would be like Scheme's `cond' or ML/Haskell `case'. God, we need macros.

ECMAScript's switch is sort of halfway between Scheme cond and C switch. Personally I think fall through and explicit break were unnecessary concessions to C-likeness but I don't think they create insurmountable problems. Case labels at arbitrary points in the code would be much worse because it's hard to describe them in any way but a controlled goto.

Netscape management said that JS had to "look like Java", which follows C in having fall-through from an upper case to a lower one. Same as C++. That's a big head-wind to tack against, and I was not prepared to explain yet another switch statement to Java-heads circa 1995.

As you say, at least we don't have the C/C++ arbitrary case label in switch body fun. Useful for low-level hacking a la Duff's Device, but hazardous scaled over a large distribution of programmer ability (IIRC, comp.risks had an item on an AT&T telephony switch crash in the late '80s or early '90s that was blamed on a missing break. I can't find it atm via Google search, which makes me sad; anyone with a pointer, please mail me).

FWIW, I agree switch can have tail position calls in its cases. That it is messy to specify, that fall-through makes it irregular, doesn't seem like enough of a reason to specify no tail call positions in switch statements.

/be
_______________________________________________
Es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to