6-- increment : (x : Var) -> STrans m () [x ::: State Int]
7-- (const [x ::: State Int])
8increment : (x : Var) -> ST m () [x ::: State Int]
9increment x = do num <- read x
12-- makeAndIncrement : Int -> STrans m Int [] (const [])
13makeAndIncrement : Int -> ST m Int []
14makeAndIncrement init = do var <- new init
20ioMakeAndIncrementBad : STrans IO () [] (const [])
22 = do lift $ putStr "Enter a number: "
23 init <- lift $ getLine
24 var <- new (cast init)
25 lift $ putStrLn ("var = " ++ show !(read var))
27 lift $ putStrLn ("var = " ++ show !(read var))
30ioMakeAndIncrement : ConsoleIO io => STrans io () [] (const [])
32 = do putStr "Enter a number: "
34 var <- new (cast init)
35 putStrLn ("var = " ++ show !(read var))
37 putStrLn ("var = " ++ show !(read var))
42-- addElement : (vec : Var) -> (item : a) ->
43-- STrans m () [vec ::: State (Vect n a)]
44-- (const [vec ::: State (Vect (S n) a)])
45addElement : (vec : Var) -> (item : a) ->
46 ST m () [vec ::: State (Vect n a) :-> State (Vect (S n) a)]
47addElement vec item = do xs <- read vec
48 write vec (item :: xs)
50addElement' : (vec : Var) -> (item : a) ->
51 STrans m () [vec ::: State (Vect n a)]
52 (const [vec ::: State (Vect (S n) a)])
53addElement' vec item = update vec (item ::)
55-- readAndAdd : ConsoleIO io => (vec : Var) ->
56-- STrans io Bool [vec ::: State (Vect n Integer)]
57-- (\res => [vec ::: State (if res then Vect (S n) Integer
58-- else Vect n Integer)])
59readAndAdd : ConsoleIO io => (vec : Var) ->
61 [vec ::: State (Vect n Integer) :->
62 \res => State (if res then Vect (S n) Integer
64readAndAdd vec = do putStr "Enter a number: "
66 if all isDigit (unpack num)
67 then returning True (update vec ((cast num) ::))
68 else returning False (pure ())
70-- newState : STrans m Var [] (\lbl => [lbl ::: State Int])
71newState : ST m Var [add (State Int)]
73-- removeState : (lbl : Var) -> STrans m () [lbl ::: State Int] (const [])
74removeState : (lbl : Var) -> ST m () [remove lbl (State Int)]
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list