What’s the difference between ternary and tertiary?

The conditional operator ( condition ? consequence : alternative ) is often referred to as both the “ternary operator” and the “tertiary operator”. What’s the difference?

“Ternary” means “having three parts”. Operators in C# can be unary, binary or ternary – they take one, two or three operands.

“Tertiary” means “third in order”. Compiler flaws noted in bug reports can be of primary, secondary or tertiary importance. Colours can be primary (yellow), secondary (orange) or tertiary (yellowish-orange), like our muppet friend to the left there. And so on.

“Tertiary operator” is therefore an English usage error, unless what you’re trying to say is that the conditional operator is third most important to you, or that it is a lovely greenish-blue colour.

I say avoid the problem altogether; it is simply more clear to call the conditional operator “the conditional operator”.

I maintain that the correct term is "trinary." Unary, binary, trinary. Compare unicycle, bicycle, tricycle.

Indeed, the OED lists "trinary" as a synonym for "ternary", but notes that its usage is rare. They were apparently synonyms in Latin as well: trinarius and ternarius both have the sense of "three parts".

You can sometimes tell whether English words have a Latin or Greek origin based on whether the prefixes are uni-, bi-, tri- (Latin) or mono-, di-, tri- (Greek). Had the Romans invented bicycles they would have been unicyclus, bicyclus, tricyclus, as they are in English. The Greeks would have had μονοκύκλος, δικύκλος, τρικύκλος - monokyklos, dikyklos, trikyklos meaning "one circle", "two circle", "three circle" -- Eric