diff options
-rw-r--r-- | assignment-13/uFPL.icl | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/assignment-13/uFPL.icl b/assignment-13/uFPL.icl index b8efab7..ffe21b3 100644 --- a/assignment-13/uFPL.icl +++ b/assignment-13/uFPL.icl @@ -6,7 +6,7 @@ import StdClass from StdFunc import const, flip, id, o from StdGeneric import :: Bimap{..}, bimapId; bm :== bimapId import StdInt -from StdList import any, map, instance fromString [a] +from StdList import any, foldl, map, instance fromString [a] import StdMisc import StdOverloaded import StdString @@ -207,7 +207,7 @@ where Nothing -> ' ' display :: String Display -> Display -display s dis = foldr (\c -> next o write c) dis (fromString s) +display s dis = foldl (\dis c -> next $ write c dis) dis (fromString s) where write :: Char Display -> Display write v dis = {dis & text=put dis.cursor v dis.text} @@ -296,11 +296,7 @@ example_countdown = "time" :=: (Change millis >>> [When (millis -. DELAY >. counter) ( counter <# counter +. DELAY :. - seconds <# running ? (seconds -. lit 1, seconds) :. - SetCursor (lit 0, lit 0) :. - Print minutes :. - Print (lit ':') :. - Print seconds + seconds <# running ? (seconds -. lit 1, seconds) )]) :. seconds ?= lit -1 >>> ( minutes <# minutes -. lit 1 :. @@ -310,6 +306,12 @@ example_countdown = running <# false :. minutes <# lit 0 :. seconds <# lit 0 + ) :. + Change seconds >>> ( + SetCursor (lit 0, lit 0) :. + Print minutes :. + Print (lit ':') :. + Print seconds ) ||| "setsec" :=: pressed b0 >>> [seconds <# seconds +. lit 1] ||| "setmin" :=: pressed b1 >>> [minutes <# minutes +. lit 1] |