Espressioni booleane

Il tipo Boolean di Scala, che corrisponde al tipo boolean di Java, ha due possibili valori, true e false, rappresentabili dai letterali true e false. Come in Java, le espressioni booleane sono composte:

Al fine di applicare il modello di sostituzione alle espressioni booleane, bisogna specificare le regole di riduzione (riscrittura) per gli operatori booleani, che sono le seguenti (dove b è un’arbitraria espressione booleana):

Untitled

Si noti che nei casi (4) e (5) l’operando destro non viene valutato; questo comportamento, comune anche nei linguaggi imperativi, prende il nome di lazy evaluation o short-circuit evaluation.

Espressioni condizionali

In Scala esiste un costrutto if-else che esprime la scelta tra due alternative; esso ha una forma simile a quella di Java, ma invece che un’istruzione è un’espressione, chiamata espressione condizionale, che viene valutata e produce un valore. In particolare la sintassi di questo costrutto è

$$ \texttt{if (predicate) then-expr} $$

oppure

$$ \texttt{if (predicate) then-expr else else-expr} $$

dove:

Intuitivamente, il risultato della valutazione di un’espressione condizionale è il valore di then-expr se predicate ha valore true, mentre è il valroe di else-expr se predicate ha valore false. Cosa avvenga esattamente quando predicate è falso e non viene specificata la else-expr verrà spiegato più avanti, ma semplificando si potrebbe dire che l’espressione “non restituisce nulla”.

Un esempio di espressione condizionale è il corpo della seguente funzione, che calcola il valore assoluto di un numero intero