File tree Expand file tree Collapse file tree 1 file changed +15
-18
lines changed Expand file tree Collapse file tree 1 file changed +15
-18
lines changed Original file line number Diff line number Diff line change @@ -64,6 +64,12 @@ module Data.String
6464 uncons s | null s = Nothing
6565 uncons s = Just {head : U. charAt 0 s, tail : drop 1 s}
6666
67+ takeWhile :: (Char -> Boolean ) -> String -> String
68+ takeWhile = doAfter take
69+
70+ dropWhile :: (Char -> Boolean ) -> String -> String
71+ dropWhile = doAfter drop
72+
6773 foreign import fromCharArray
6874 " " "
6975 function fromCharArray(a) {
@@ -147,17 +153,6 @@ module Data.String
147153 }
148154 " " " :: Number -> String -> String
149155
150- foreign import takeWhile
151- " " "
152- function takeWhile(p){
153- return function(s){
154- var i;
155- for(i = 0; i < s.length && p(s.charAt(i)); i++){};
156- return take(i)(s);
157- };
158- }
159- " " " :: (Char -> Boolean ) -> String -> String
160-
161156 foreign import drop
162157 " " "
163158 function drop(n) {
@@ -167,16 +162,18 @@ module Data.String
167162 }
168163 " " " :: Number -> String -> String
169164
170- foreign import drop While
165+ foreign import do After
171166 " " "
172- function dropWhile(p){
173- return function(s){
174- var i;
175- for(i = 0; i < s.length && p(s.charAt(i)); i++){};
176- return drop(i)(s);
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+ };
177174 };
178175 }
179- " " " :: (Char -> Boolean ) -> String -> String
176+ " " " :: (Number -> String -> String ) -> ( Char -> Boolean ) -> String -> String
180177
181178 foreign import split
182179 " " "
You can’t perform that action at this time.
0 commit comments