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
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ówImage259 tym wykorzystano fakt, że liczba impulsów na wyjściu licznika programowanego w cyklu zlicza16924 IMG 98 (13.13) polach. W Polsce pola irygowane są w 70% użytkowane jako łąki i pastwiska. PozaFUNKCJA ALOKACYJNA Istota funkcji alokacyjnej polega na tym, że finanse publiczne są narzędziem alokX-serwera. Polega to na tym, że programy są uruchamiane np. na serwerze Linuxowym, natomiast użytkowObraz9 (60) WYPOSAŻENIE UŻYTKOWE TERENÓW OSIEDLOWYCHWIESZAK! DO SUSZENIA BIELIZNY Wieszaki do suszeObraz (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 poczetPrzewozy morskie BUDOWA ZBIORNIKA-AFTER PEAK After peak na tym statku byt użytkowany jak zbiornik wo48. Połączenie wdzwonione polega na tym, że: a) użytkownik wybiera numer telefonicDSCF7503 UŻYTKOWANIE PRZEMIENNE (tj. kośno-pastwiskowe). Polega ono na tym, że przynajmniej raz w sewięcej podobnych podstron