2010-08-10 20 views
5

A mio avviso, l'operatore condizionale (condizione? Conseguenza: alternativa) viene spesso definito sia "operatore terziario" che "operatore ternario".Differenza tra terziario e ternario?

Qual è la differenza tra questi termini?

risposta

6

Non ho mai sentito parlare dell'operatore "terziario", solo "ternario". La mia ipotesi è che si tratta di un abuso di linguaggio.

2

Uno di questi non è corretto. Ternary deriva dal fatto che ci sono tre argomenti usati (gli operatori binari usano due argomenti). Tertiary proviene da third ed è errato.

10

Il terziario è un periodo geologico, da 65 milioni a 1,8 milioni di anni fa.

Seriamente, però, "terziario" significa "terzo grado" - non necessariamente in valore, ma forse in sequenza, come nell'istruzione primaria, secondaria e terziaria. Vuoi un termine che si riferisce a coinvolgere tre argomenti, e questo è "ternario", e va con "binario" e "unario".

+4

È come Wikipedia. Prima sto leggendo su Ternary, poi improvvisamente sto imparando sui periodi geologici. –

12

Dovrebbe essere chiamato "operatore condizionale". "Operatore ternario" significa che accetta tre operandi. Poiché è l'unico operatore comune che lo fa, a volte viene chiamato "il" operatore ternario. Il fatto che ce ne sia solo uno è una coincidenza. "Operatore terziario" è ancora più sbagliato. Significa qualcosa come "terzo operatore più importante".

+0

L'origine del "terziario" era molto probabilmente solo un fraintendimento/errata ortografia di "ternario?" –

1

Da Wikipedia:

In informatica un operatore ternario (a volte erroneamente chiamato un operatore di terziario) è un operatore che prende tre argomenti.

Non l'ho mai sentito chiamare "operatore terziario". Quindi, la differenza è che l'utilizzo di uno ti farà sembrare un principiante. Suppongo.

1

una è corretta e uno è corretto

un ternary operator è un operatore con 3 ingressi esempio un? b: c, ha arity di 3

un operatore tertiary significherebbe solo il terzo operatore? questo non ha alcun significato

8

"Operatore condizionale" è il nome corretto. Lo è unternary operator, l'unico in molte lingue, motivo per cui viene talvolta indicato come l'operatore ternario.

Non credo sia corretto chiamarlo "terziario". Quella parola significa qualcosa come "la terza opzione", un po 'come primaria e secondaria sarebbe prima e seconda.

+0

Mi chiedo quali altre cose si possa desiderare da un operatore di esattamente tre operandi? Posso pensare a due cose generali: calcolare c^((c^b) & a), valutando c una volta (una versione bit a bit di? :), e determinare se un elemento è all'interno di un certo intervallo. Non ho visto nessuno di quelli inclusi in una lingua come operatore ternario (anche se alcune lingue offrono metodi di test di intervallo). – supercat

+0

@supercat: il controllo degli intervalli è un buon esempio. Non so quante volte ho voluto scrivere 'if (a

+0

Infatti, l'operatore ternario in C è solo l'unica cosa utile che posso pensare che un operatore possa fare quale funzione non può, almeno non senza uno stile di supporto di espressione lambda che AFAIK non fornisce (potrebbe essere utile per consentire a una funzione di accettare come argomento un delegato che restituirà un valore specificato, l'argomento di tale funzione verrà valutato solo se la funzione chiama il delegato). – supercat

4

Se è chiamato terziario, è erroneamente così.

terziaria significa "terzo [livello]" che ternari significa "aventi tre parti." Queste non sono definizioni di programmazione, solo quello che le parole significano.

Chiaramente, l'operatore è ternario (1 ? 2 : 3;), ma terziaria non ha senso in questo caso.