|
1 | 1 | "use strict"; |
2 | 2 |
|
3 | | -exports._charAt = function (just) { |
4 | | - return function (nothing) { |
5 | | - return function (i) { |
6 | | - return function (s) { |
7 | | - return i >= 0 && i < s.length ? just(s.charAt(i)) : nothing; |
8 | | - }; |
9 | | - }; |
10 | | - }; |
11 | | -}; |
12 | | - |
13 | | -exports.singleton = function (c) { |
14 | | - return c; |
15 | | -}; |
16 | | - |
17 | | -exports._charCodeAt = function (just) { |
18 | | - return function (nothing) { |
19 | | - return function (i) { |
20 | | - return function (s) { |
21 | | - return i >= 0 && i < s.length ? just(s.charCodeAt(i)) : nothing; |
22 | | - }; |
23 | | - }; |
24 | | - }; |
25 | | -}; |
26 | | - |
27 | | -exports._toChar = function (just) { |
28 | | - return function (nothing) { |
29 | | - return function (s) { |
30 | | - return s.length === 1 ? just(s) : nothing; |
31 | | - }; |
32 | | - }; |
33 | | -}; |
34 | | - |
35 | | -exports.fromCharArray = function (a) { |
36 | | - return a.join(""); |
37 | | -}; |
38 | | - |
39 | | -exports._indexOf = function (just) { |
40 | | - return function (nothing) { |
41 | | - return function (x) { |
42 | | - return function (s) { |
43 | | - var i = s.indexOf(x); |
44 | | - return i === -1 ? nothing : just(i); |
45 | | - }; |
46 | | - }; |
47 | | - }; |
48 | | -}; |
49 | | - |
50 | | -exports["_indexOf'"] = function (just) { |
51 | | - return function (nothing) { |
52 | | - return function (x) { |
53 | | - return function (startAt) { |
54 | | - return function (s) { |
55 | | - if (startAt < 0 || startAt > s.length) return nothing; |
56 | | - var i = s.indexOf(x, startAt); |
57 | | - return i === -1 ? nothing : just(i); |
58 | | - }; |
59 | | - }; |
60 | | - }; |
61 | | - }; |
62 | | -}; |
63 | | - |
64 | | -exports._lastIndexOf = function (just) { |
65 | | - return function (nothing) { |
66 | | - return function (x) { |
67 | | - return function (s) { |
68 | | - var i = s.lastIndexOf(x); |
69 | | - return i === -1 ? nothing : just(i); |
70 | | - }; |
71 | | - }; |
72 | | - }; |
73 | | -}; |
74 | | - |
75 | | -exports["_lastIndexOf'"] = function (just) { |
76 | | - return function (nothing) { |
77 | | - return function (x) { |
78 | | - return function (startAt) { |
79 | | - return function (s) { |
80 | | - if (startAt < 0 || startAt > s.length) return nothing; |
81 | | - var i = s.lastIndexOf(x, startAt); |
82 | | - return i === -1 ? nothing : just(i); |
83 | | - }; |
84 | | - }; |
85 | | - }; |
86 | | - }; |
87 | | -}; |
88 | | - |
89 | | -exports.length = function (s) { |
90 | | - return s.length; |
91 | | -}; |
92 | | - |
93 | 3 | exports._localeCompare = function (lt) { |
94 | 4 | return function (eq) { |
95 | 5 | return function (gt) { |
@@ -119,50 +29,12 @@ exports.replaceAll = function (s1) { |
119 | 29 | }; |
120 | 30 | }; |
121 | 31 |
|
122 | | -exports.take = function (n) { |
123 | | - return function (s) { |
124 | | - return s.substr(0, n); |
125 | | - }; |
126 | | -}; |
127 | | - |
128 | | -exports.drop = function (n) { |
129 | | - return function (s) { |
130 | | - return s.substring(n); |
131 | | - }; |
132 | | -}; |
133 | | - |
134 | | -exports._slice = function (b) { |
135 | | - return function (e) { |
136 | | - return function (s) { |
137 | | - return s.slice(b,e); |
138 | | - }; |
139 | | - }; |
140 | | -}; |
141 | | - |
142 | | -exports.countPrefix = function (p) { |
143 | | - return function (s) { |
144 | | - var i = 0; |
145 | | - while (i < s.length && p(s.charAt(i))) i++; |
146 | | - return i; |
147 | | - }; |
148 | | -}; |
149 | | - |
150 | 32 | exports.split = function (sep) { |
151 | 33 | return function (s) { |
152 | 34 | return s.split(sep); |
153 | 35 | }; |
154 | 36 | }; |
155 | 37 |
|
156 | | -exports.splitAt = function (i) { |
157 | | - return function (s) { |
158 | | - return { before: s.substring(0, i), after: s.substring(i) }; |
159 | | - }; |
160 | | -}; |
161 | | - |
162 | | -exports.toCharArray = function (s) { |
163 | | - return s.split(""); |
164 | | -}; |
165 | | - |
166 | 38 | exports.toLower = function (s) { |
167 | 39 | return s.toLowerCase(); |
168 | 40 | }; |
|
0 commit comments