1673068221

1673068221



Wyposażmy użytkownika w jakieś narzędzia operujące na tym liczniku:

fetch :: IntState Int

fetch = IntState (\n -> (n, n))

assign :: Int -> IntState () assign n = IntState (\_ -> (n, ()))

run :: Int -> IntState a -> a run n (IntState st) = snd $ st n

renumber :: Tree -> Tree renumber = run 0 . aux where

aux :: Tree -> IntState Tree aux Leaf = return Leaf

aux (Node tl _ t2) = aux tl »= \tl’ -> (fetch »=

\n -> (assign (n+1)) » \() -> (aux t2 »=

\t2’ -> return (Node tl

Powyższy zapis jest bardzo nieczytelny. Mamy taki oto cukier: do

ei

p*-e 2 let p = e3

do


x ■*- e\

ei


jest tym samym co


e\ »= (A x -*■ e-i)


jest tym samym co    e\ »= (A _ e2)

Przepiszmy renumber używając powyższego cukru syntaktycznego:

renumber = run 0 . aux where aux Leaf = return Leaf aux (Node tl _ t2) = do tl’ <- aux tl n <- fetch assign (n+1) t2’ <- aux t2 return (Node tl’ n t2’)



Wyszukiwarka

Podobne podstrony:
spożywczych, funkcjonuje niespełna 70% podmiotów operujących na tym rynku18. Liczba podmiotów
Image259 tym wykorzystano fakt, że liczba impulsów na wyjściu licznika programowanego w cyklu zlicza
16924 IMG 98 (13.13) polach. W Polsce pola irygowane są w 70% użytkowane jako łąki i pastwiska. Poza
FUNKCJA ALOKACYJNA Istota funkcji alokacyjnej polega na tym, że finanse publiczne są narzędziem alok
X-serwera. Polega to na tym, że programy są uruchamiane np. na serwerze Linuxowym, natomiast użytkow
Obraz9 (60) WYPOSAŻENIE UŻYTKOWE TERENÓW OSIEDLOWYCHWIESZAK! DO SUSZENIA BIELIZNY Wieszaki do susze
Obraz (12) udogodnień). Uniwersalność ISUP polega na tym, że w sieci cyfrowej połączenie pomiędzy wy
Ćwiczenia Użytkownika Str. 19LEKCJA 4 - Wypłata pracownika W tym rozdziale: Zaliczki na poczet
Przewozy morskie BUDOWA ZBIORNIKA-AFTER PEAK After peak na tym statku byt użytkowany jak zbiornik wo
48. Połączenie wdzwonione polega na tym, że: a)    użytkownik wybiera numer telefonic
DSCF7503 UŻYTKOWANIE PRZEMIENNE (tj. kośno-pastwiskowe). Polega ono na tym, że przynajmniej raz w se

więcej podobnych podstron