File tree Expand file tree Collapse file tree 2 files changed +13
-12
lines changed Expand file tree Collapse file tree 2 files changed +13
-12
lines changed Original file line number Diff line number Diff line change 33
33
34
34
charCodeAt :: Number -> String -> Maybe Number
35
35
36
+ count :: (Char -> Boolean) -> String -> Number
37
+
36
38
drop :: Number -> String -> String
37
39
38
40
dropWhile :: (Char -> Boolean) -> String -> String
Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ module Data.String
14
14
singleton ,
15
15
localeCompare ,
16
16
replace ,
17
+ count ,
17
18
take ,
18
19
takeWhile ,
19
20
drop ,
@@ -65,10 +66,10 @@ module Data.String
65
66
uncons s = Just {head : U. charAt 0 s, tail : drop 1 s}
66
67
67
68
takeWhile :: (Char -> Boolean ) -> String -> String
68
- takeWhile = do After take
69
+ takeWhile p s = take ( count p s ) s
69
70
70
71
dropWhile :: (Char -> Boolean ) -> String -> String
71
- dropWhile = do After drop
72
+ dropWhile p s = drop ( count p s ) s
72
73
73
74
foreign import fromCharArray
74
75
" " "
@@ -162,18 +163,16 @@ module Data.String
162
163
}
163
164
" " " :: Number -> String -> String
164
165
165
- foreign import do After
166
+ foreign import count
166
167
" " "
167
- function doAfter(f){
168
- return function(p){
169
- return function(s){
170
- var i;
171
- for(i = 0; i < s.length && p(s.charAt(i)); i++){};
172
- return f(i)(s);
173
- };
174
- };
168
+ function count(p){
169
+ return function(s){
170
+ var i;
171
+ for(i = 0; i < s.length && p(s.charAt(i)); i++){};
172
+ return i;
173
+ };
175
174
}
176
- " " " :: (Number -> String -> String ) -> ( Char -> Boolean ) -> String -> String
175
+ " " " :: (Char -> Boolean ) -> String -> Number
177
176
178
177
foreign import split
179
178
" " "
You can’t perform that action at this time.
0 commit comments