I numeri razionali modellati dalla classe Rational sono un concetto tanto naturale quanto i numeri interi modellati da Int, ma dal punto di vista dell’utilizzo c’è una caratteristica che distingue sintatticamente le due astrazioni:
x + y per indicare la somma di interix.add(y) per indicare la somma di razionali.Il linguaggio Scala (come molti altri linguaggi, ma non Java) mette a disposizione degli strumenti per eliminare questa differenza, che in particoalre sono la notazione infissa e gli identificatori simbolici.
Tutti i metodi con un unico argomento possono essere utilizzati in notazione infissa. Ad esempio, nel caso della classe Rational si può scrivere:
x add y invece di x.add(y)x sub y invece di x.sub(y)x less y invece di x.less(y)L’invocazione di un metodo in notazione infissa è zucchero sintattico, che il compilatore semplicemente riscrive in una normale invoazione con la dot-notation.
In Scala gli identificatori si distinguono, in base ai caratteri da cui sono composti, in due categorie: alfanumerici e simbolici.
Gli identificatori alfanumerici iniziano con una lettera, seguita da una sequenza di lettere e cifre, e infine, opzionalmente, un carattere _ (underscore) seguito da degli operatori.
I caratteri $ e _ sono considerati lettere, ma:
$ non dovrebbe essere usato dal programmatore, in quanto viene usato dal compilatore Scala per contrassegnare i nomi di elementi del codice generati automaticamente (classi di supporto, ecc): se lo si usasse, si potrebbero dunque creare conflitti con tali nomi._ va usato con attenzione, in quanto ha dei significati speciali nel linguaggio.Alcuni esempi di identificatori alfanumerici sono: