Share to:

Ivrig evaluering

Inden for programmering er ivrig evaluering (eller grådig evaluering) en strategi som de fleste traditionelle programmeringssprog anvender. Ved ivrig evaluering bliver udtryk evalueret så snart de bliver bundet til en variabel. Ivrig evaluering står i modsætning til doven evaluering hvor udtryk først bliver evalueret når et udtryk som afhænger af dens værdi bliver evalueret. Et eksempel på et sprog som benytter doven evaluering er Haskell. I imperative sprog bruges ivrig evaluering næsten udelukkende, nogle gange med undtagelse af enkelte logiske operatorer.

Fordel ved anvendelse af ivrig evaluering

En fordel ved ivrig evaluering er at programmøren kan diktere rækkefølgen for udførelsen af programmets dele. Det kan have en betydning når underudtryk har sideeffekter såsom filoperationer, hvor programmets videre udførsel afhænger af at de er foretaget på det rigtige tidspunkt.

Ulempe ved anvendelse af ivrig evaluering

En ulempe ved ivrig evaluering er at det tvinger beregningen af udtryk som måske aldrig bliver brugt til noget, eller som måske først skal bruges senere i programmets udførsel, hvilket kan spærre for den umiddelbare beregning af et udtryk som skal bruges før.

Programmeringseksempel 1

Et eksempel på dette, skrevet i programmeringssproget Python:

# Beregner det n'te Fibonacci-tal
def fibonacci(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

# Udskriver x, smider y væk 
def udskriv_svar(x, y):
    print("Svaret er " + str(x))

udskriv_svar(42, fibonacci(33))

Programmeringseksempel 2

Et eksempel på en doven operator, i programmeringssproget PHP, hvor udtrykket på højresiden af ||-operatoren kun bliver udført hvis det er nødvendigt. I dette tilfælde afslutter programmet uden at die("Panda er trist.") bliver kørt.

<?php
$er_panda_glad = true;
$er_panda_glad || die("Panda er trist.");
?>

Bemærkning

Det er værd at bemærke at mange moderne compilere kan både eliminere kode som ikke har nogen virkning og planlægge udførslen af instruktioner for bedre at anvende processorens ressourcer.

Se også

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya