3||| Convert a positive number string to a Num.
9||| parsePositive {a=Int} " +123"
11parsePositive : Num a => String -> Maybe a
12parsePositive s = parsePosTrimmed (trim s)
14 parsePosTrimmed s with (strM s)
15 parsePosTrimmed "" | StrNil = Nothing
16 parsePosTrimmed (strCons x xs) | (StrCons x xs) =
18 then map fromInteger (parsePosAux (unpack xs) 0)
19 else map fromInteger (parsePosAux (unpack xs) (cast (ord x - ord '0')))
21 parsePosAux : List Char -> Integer -> Maybe Integer
22 parsePosAux [] acc = Just acc
23 parsePosAux (c :: cs) acc =
24 if (c >= '0' && c <= '9')
25 then parsePosAux cs ((acc * 10) + (cast ((ord c) - (ord '0'))))
29||| Convert a number string to a Num.
32||| parseInteger " 123"
35||| parseInteger {a=Int} " -123"
37parseInteger : (Num a, Neg a) => String -> Maybe a
38parseInteger s = parseIntTrimmed (trim s)
40 parseIntTrimmed s with (strM s)
41 parseIntTrimmed "" | StrNil = Nothing
42 parseIntTrimmed (strCons x xs) | (StrCons x xs) =
44 then map (\y => negate (fromInteger y)) (parseIntegerAux (unpack xs) 0)
46 then map fromInteger (parseIntegerAux (unpack xs) (cast {from=Int} 0))
47 else map fromInteger (parseIntegerAux (unpack xs) (cast (ord x - ord '0')))
49 parseIntegerAux : List Char -> Integer -> Maybe Integer
50 parseIntegerAux [] acc = Just acc
51 parseIntegerAux (c :: cs) acc =
52 if (c >= '0' && c <= '9')
53 then parseIntegerAux cs ((acc * 10) + (cast ((ord c) - (ord '0'))))
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