Calcoli differiti (F#)
I calcoli differiti sono calcoli che non vengono valutati nell'immediato, ma solo quando il risultato è necessario. In questo modo è possibile migliorare le prestazioni del codice.
let identifier = lazy ( expression )
Note
Nella sintassi precedente expression rappresenta il codice valutato solo quando un risultato è necessario e identifier è un valore che consente di archiviare il risultato. Il valore è di tipo Lazy<'T>, in cui il tipo effettivo utilizzato per 'T viene determinato dal risultato dell'espressione.
I calcoli differiti consentono di migliorare le prestazioni limitando l'esecuzione di un calcolo alle sole situazioni in cui è necessario un risultato.
Per forzare l'esecuzione del calcolo, è necessario chiamare il metodo Force. Force consente di forzare una sola esecuzione. Le chiamate successive di Force restituiscono lo stesso risultato, ma non comportano l'esecuzione di codice.
Nel codice seguente viene illustrato l'utilizzo del calcolo differito e di Force. I questo codice il tipo di result è Lazy<int> e il metodo Force restituisce la parola chiave int.
let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())
La valutazione differita, ma non il tipo Lazy, viene utilizzata anche per le sequenze. Per ulteriori informazioni, vedere Sequenze (F#).