Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

TIES341 Funktio-ohjelmointi 2 Kevät 2006

Samankaltaiset esitykset


Esitys aiheesta: "TIES341 Funktio-ohjelmointi 2 Kevät 2006"— Esityksen transkriptio:

1 TIES341 Funktio-ohjelmointi 2 Kevät 2006
Nuolet II TIES341 Funktio-ohjelmointi 2 Kevät 2006

2 Nuolinotaation tarve Nuolilausekkeet kasvavat herkästi erittäin vaikeiksi hahmottaa Siksi Paterson ehdotti nuolinotaatiota

3 Nuolinotaatio lauseke: proc pat -> do cmd lausekkeen arvo on nuoli
nuolen syöte sovitetaan hahmoon pat komennon tulos on nuolen tulos

4 Komennot pat <- exp1 -< exp2 käytä nuolta exp1 syötteellä exp2
exp1:ssä ei saa esiintyä proc-hahmon muuttujia nuolen exp1 tulos sovitetaan hahmoon pat pat <- exp1 -<< exp2 kuten -< paitsi exp1:ssä saa käyttää proc- muuttujia luotava nuoli kuuluu ArrowApply-luokkaan returnA -< exp kuten tavallisen do:n “return exp” ... muuten kuten do:ssa tavallisestikin ...

5 Käännös proc p -> e1 -< e2
==> arr (\p -> e2) >>> e1 proc p -> e1 -<< e2 ==> arr (\p -> (e1,e2)) >> app proc p -> c1 `op` c2 ==> op (proc p -> c1) (proc p -> c2) proc p -> \p' -> c ==> proc (p,p') -> c

6 Käännös jatkuu (do proc:n sisällä)
do c ==> c do p <- c1; c2 ==> arr id &&& c1 >>> (\p -> c2) do c1; c2 ==> arr id &&& c1 >>> (\_ -> c2) eli proc p1 -> do p2 <- c1; c2 ==> (proc p1 -> arr id &&& c1) >>> (proc (p1,p2) -> c2)


Lataa ppt "TIES341 Funktio-ohjelmointi 2 Kevät 2006"

Samankaltaiset esitykset


Iklan oleh Google