summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assignment-13/uFPL.icl16
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]