11module Data.String
22 (
33 charAt ,
4- charAt' ,
54 charCodeAt ,
6- charCodeOf ,
75 fromCharArray ,
86 fromChar ,
9- fromCharCode ,
10- fromCharCode' ,
117 indexOf ,
128 indexOf' ,
139 lastIndexOf ,
@@ -27,29 +23,20 @@ module Data.String
2723
2824 import Data.Maybe
2925 import Data.Char
26+ import Data.Function
3027
31- foreign import _unsafeMkChar " function _unsafeMkChar(s){return s;}" :: String -> Char
28+ foreign import _charAt
29+ " function _charAt(i, s, Just, Nothing) {\
30+ \ if (i < 0 || i >= s.length) return Nothing;\
31+ \ else return Just(s.charAt(i));\
32+ \}" :: forall a. Fn4 Number String (a -> Maybe a ) (Maybe a ) (Maybe Char )
3233
33- -- | Deprecated
34- foreign import charAt
35- " function charAt(i) {\
36- \ return function(s) {\
37- \ return s.charAt(i); \
38- \ };\
39- \}" :: Number -> String -> String
40-
41- charAt' :: Number -> String -> Maybe Char
42- charAt' n s =
43- case charAt n s of
44- " " -> Nothing
45- c -> Just $ _unsafeMkChar c
34+ charAt :: Number -> String -> Maybe Char
35+ charAt n s = runFn4 _charAt n s Just Nothing
4636
4737 fromChar :: Char -> String
4838 fromChar = charString
4939
50- charCodeOf :: Char -> Number
51- charCodeOf c = charCodeAt 0 (charString c )
52-
5340 foreign import charCodeAt
5441 " function charCodeAt(i) {\
5542 \ return function(s) {\
@@ -62,15 +49,6 @@ module Data.String
6249 \ return a.join(''); \
6350 \" :: [Char ] -> String
6451
65- -- | Deprecated
66- foreign import fromCharCode
67- " function fromCharCode(n) {\
68- \ return String.fromCharCode(n);\
69- \}" :: Number -> String
70-
71- fromCharCode' :: Number -> Char
72- fromCharCode' c = _unsafeMkChar $ fromCharCode c
73-
7452 foreign import indexOf
7553 " function indexOf(x) {\
7654 \ return function(s) {\
0 commit comments