Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Laiska laskenta, korekursio ja äärettömyys

Samankaltaiset esitykset


Esitys aiheesta: "Laiska laskenta, korekursio ja äärettömyys"— Esityksen transkriptio:

1 Laiska laskenta, korekursio ja äärettömyys
TIEA341 Funktio-ohjelmointi Syksy 2005

2 Muistatko graafinsievennyksen?

3 DAG-esitys ja graafinsievennys
Lausekkeen rakennepuu, jos- sa yhteiset alilausekkeet on samastettu Graafinsievennys Sievennetään DAG-esitystä tavalliseen tapaan, mutta korvataan louksi DAG:ssa sievennetyn alilausekkeen “juurisolmu” vastauksen juuri- solmulla * 2 + x = 2 * 2 x * (2 + x)

4 * 2 + x = 2 * 2 x * (2 + x) Redeksi

5 * 4 * (2 + 4) + 4 2 Redeksi

6 * 4 * 6 6 4 Redeksi

7 24 24

8 Laiska laskenta Laiska laskenta on toinen nimitys graafinsievennykselle Ytimekkäästi: mitään ei lasketa ennen kuin on pakko, ja mitään ei lasketa kahdesti mutta tämä on yksinkertaistus “Mitään ei lasketa ennen kuin on pakko” normaalijärjestys “Mitään ei lasketa kahdesti” viittaa DAG-esityksen ominaisuuteen, jossa yhteiset alilausekkeet samastetaan ei pidä ottaa liian kirjaimellisesti

9 Tarvevälitys Toinen näkökulma laiskaan laskentaan Arvovälitys:
funktion argumentit lasketaan ennen funktiokutsua parametrit saavat laskennan tulokset arvoikseen Nimivälitys: funktion argumentti lasketaan joka kerta, kun vastaavaa parametria käytetään funktion sisällä Tarvevälitys (laiska laskenta): kuten nimivälitys, paitsi että argumentin arvo muistetaan, kun se on kerran laskettu

10 Striktit ja nonstriktit funktiot
Yksiparametrisen funktion sanotaan olevan strikti, jos f e sievenee pohjaksi aina, kun e sievenee pohjaksi lyhyesti. “f ⊥ = ⊥“ Muuten se on nonstrikti Moniparametriset funktiot tarkastellaan parametri kerrallaan pitäen muut vakioina “f a ⊥ c d = ⊥“ Esim. ⊥ && x = ⊥ mutta False && ⊥ = False Nonstriktit funktiot eivät ole mahdollisia applikatiivista järjestystä (arvovälitys) käytettäessä


Lataa ppt "Laiska laskenta, korekursio ja äärettömyys"

Samankaltaiset esitykset


Iklan oleh Google