Lataa esitys
Esittely latautuu. Ole hyvä ja odota
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)
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.