eg. Haskell does not have it. (but it has pattern guards) Another thing, what do you do if there are multiple matching patterns in a switch?: final switch({1,2}){ case {1,y}: ...; break; case {x,2}: ...; break; default: ...; break; }