Question: Consider the following:

```
if(a == b or c)

```

In most languages, this would need to be written as:

```
if(a == b or a == c)

```

which is slightly cumbersome and repeats information. 

I know my above sample syntax is slightly clunky, but I am sure there are better ways to convey the idea.

Why don't more languages offer it? Is there performance or syntax issues?

Answer: 
In some (popular) languages `==` operator is not transitive. For instance in JavaScript `0` is equal to both `''` and `'0'`, but then `''` and `'0'` are not equal to eachother. More of such quirks in PHP. 

It means that `a == b == c` would add another ambiguity, because it could yield a different result depending on whether it's interpreted as `(a == b) & (a == c)` or `(a == b) & (a == c) & (b == c)`.
The indexOf method, used on an Array, that quite all languages have, allows to compare a value to several others, so i guess a special operator doesn't make much sense. 

In javascript that would write : 

```
if ( [b, c].indexOf(a) != -1 ) { ....  }

```