Udostępnij za pośrednictwem


Obliczenia powolne (F#)

Obliczenia z opóźnieniem- są obliczenia, które nie są obliczane natychmiast, ale zamiast tego są oceniane, gdy potrzebne jest wynik.Może to pomóc w celu poprawy działania kodu.

let identifier = lazy ( expression )

Uwagi

W poprzednich składni expression jest kodem, który jest oceniane tylko wtedy, gdy wynikiem jest wymagane, i identifier jest wartością, która przechowuje wynik.Wartość typu opóźnieniem, <'T>, gdy rzeczywisty typ jest używany do 'T jest określana na podstawie wyniku wyrażenia.

Obliczenia z opóźnieniem pozwalają zwiększyć wydajność przez wykonanie obliczeń do tylko tych sytuacji, w których potrzebna jest wynikiem ograniczenia.

Aby wymusić obliczeń, które mają być wykonane, należy wywołać metodę Force.Forcepowoduje wykonanie należy przeprowadzić tylko jeden raz.Kolejne wywołania Force zwrotu powoduje takie same, ale nie wykonanie dowolnego kodu.

Poniższy kod ilustruje wykorzystanie z opóźnieniem obliczeń i wykorzystanie Force.W tym kodzie typu result jest Lazy<int>oraz Force metoda zwraca int.

let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())

Ocena z opóźnieniem, ale nie Lazy typu, jest również używany dla sekwencji.Aby uzyskać więcej informacji, zobacz Sekwencje (F#).

Zobacz też

Informacje

Moduł LazyExtensions

Inne zasoby

Materiały referencyjne dotyczące języka F#