UNPKG

22.6 kBTypeScriptView Raw
1// Change [0]: 2015/06/14 - Marcelo Camargo <https://github.com/haskellcamargo>
2
3declare namespace PreludeLS {
4 export function id<A>(x: A): A;
5 export function isType<A>(type: string): (x: A) => boolean;
6 export function isType<A>(type: string, x: A): boolean;
7 export function replicate<A>(n: number): (x: A) => A[];
8 export function replicate<A>(n: number, x: A): A[];
9
10 // List
11
12 export function each<A>(f: (x: A) => void): (xs: A[]) => A[];
13 export function each<A>(f: (x: A) => void, xs: A[]): A[];
14 export function map<A, B>(f: (x: A) => B): (xs: A[]) => B[];
15 export function map<A, B>(f: (x: A) => B, xs: A[]): B[];
16 export function compact<A>(xs: A[]): A[];
17 export function filter<A>(f: (x: A) => boolean): (xs: A[]) => A[];
18 export function filter<A>(f: (x: A) => boolean, xs: A[]): A[];
19 export function reject<A>(f: (x: A) => boolean): (xs: A[]) => A[];
20 export function reject<A>(f: (x: A) => boolean, xs: A[]): A[];
21 export function partition<A>(f: (x: A) => Boolean): (xs: A[]) => [A[], A[]];
22 export function partition<A>(f: (x: A) => Boolean, xs: A[]): [A[], A[]];
23 export function find<A>(f: (x: A) => Boolean): (xs: A[]) => A;
24 export function find<A>(f: (x: A) => Boolean, xs: A[]): A;
25 export function head<A>(xs: A[]): A;
26 export function tail<A>(xs: A[]): A[];
27 export function last<A>(xs: A[]): A;
28 export function initial<A>(xs: A[]): A[];
29 export function empty<A>(xs: A[]): boolean;
30 export function reverse<A>(xs: A[]): A[];
31 export function unique<A>(xs: A[]): A[];
32 export function uniqueBy<A, B>(f: (x: A) => B): (xs: A[]) => A[];
33 export function uniqueBy<A, B>(f: (x: A) => B, xs: A[]): A[];
34 export function fold<A, B>(f: (x: A) => (y: B) => A): (memo: A) => (xs: B[]) => A;
35 export function fold<A, B>(f: (x: A) => (y: B) => A, memo: A): (xs: B[]) => A;
36 export function fold<A, B>(f: (x: A) => (y: B) => A, memo: A, xs: B[]): A;
37 export function foldl<A, B>(f: (x: A) => (y: B) => A): (memo: A) => (xs: B[]) => A;
38 export function foldl<A, B>(f: (x: A) => (y: B) => A, memo: A): (xs: B[]) => A;
39 export function foldl<A, B>(f: (x: A) => (y: B) => A, memo: A, xs: B[]): A;
40 export function fold1<A>(f: (x: A) => (y: A) => A): (xs: A[]) => A;
41 export function fold1<A>(f: (x: A) => (y: A) => A, xs: A[]): A;
42 export function foldl1<A>(f: (x: A) => (y: A) => A): (xs: A[]) => A;
43 export function foldl1<A>(f: (x: A) => (y: A) => A, xs: A[]): A;
44 export function foldr<A, B>(f: (x: A) => (y: B) => B): (memo: B) => (xs: A[]) => B;
45 export function foldr<A, B>(f: (x: A) => (y: B) => B, memo: B): (xs: A[]) => B;
46 export function foldr<A, B>(f: (x: A) => (y: B) => B, memo: B, xs: A[]): B;
47 export function foldr1<A>(f: (x: A) => (y: A) => A): (xs: A[]) => A;
48 export function foldr1<A>(f: (x: A) => (y: A) => A, xs: A[]): A;
49 export function unfoldr<A, B>(f: (x: B) => [A, B] | void): (x: B) => A[];
50 export function unfoldr<A, B>(f: (x: B) => [A, B] | void, x: B): A[];
51 export function concat<A>(xss: A[][]): A[];
52 export function concatMap<A, B>(f: (x: A) => B[]): (xs: A[]) => B[];
53 export function concatMap<A, B>(f: (x: A) => B[], xs: A[]): B[];
54 export function flatten(xs: any[]): any[];
55 export function difference<A>(...xss: A[][]): A[];
56 export function intersection<A>(...xss: A[][]): A[];
57 export function union<A>(...xss: A[][]): A[];
58 export function countBy<A, B>(f: (x: A) => B): (xs: A[]) => any;
59 export function countBy<A, B>(f: (x: A) => B, xs: A[]): any;
60 export function groupBy<A, B>(f: (x: A) => B): (xs: A[]) => any;
61 export function groupBy<A, B>(f: (x: A) => B, xs: A[]): any;
62 export function andList<A>(xs: A[]): boolean;
63 export function orList<A>(xs: A[]): boolean;
64 export function any<A>(f: (x: A) => boolean): (xs: A[]) => boolean;
65 export function any<A>(f: (x: A) => boolean, xs: A[]): boolean;
66 export function all<A>(f: (x: A) => boolean): (xs: A[]) => boolean;
67 export function all<A>(f: (x: A) => boolean, xs: A[]): boolean;
68 export function sort<A>(xs: A[]): A[];
69 export function sortWith<A>(f: (x: A) => (y: A) => number): (xs: A[]) => A[];
70 export function sortWith<A>(f: (x: A) => (y: A) => number, xs: A[]): A[];
71 export function sortBy<A, B>(f: (x: A) => B): (xs: A[]) => A[];
72 export function sortBy<A, B>(f: (x: A) => B, xs: A[]): A[];
73 export function sum(xs: number[]): number;
74 export function product(xs: number[]): number;
75 export function mean(xs: number[]): number;
76 export function maximum<A>(xs: A[]): A;
77 export function minimum<A>(xs: A[]): A;
78 export function maximumBy<A, B>(f: (x: A) => B): (xs: A[]) => A;
79 export function maximumBy<A, B>(f: (x: A) => B, xs: A[]): A;
80 export function minimumBy<A, B>(f: (x: A) => B): (xs: A[]) => A;
81 export function minimumBy<A, B>(f: (x: A) => B, xs: A[]): A;
82 export function scan<A, B>(f: (x: A) => (y: B) => A): (memo: A) => (xs: B[]) => A[];
83 export function scan<A, B>(f: (x: A) => (y: B) => A, memo: A): (xs: B[]) => A[];
84 export function scan<A, B>(f: (x: A) => (y: B) => A, memo: A, xs: B[]): A[];
85 export function scanl<A, B>(f: (x: A) => (y: B) => A): (memo: A) => (xs: B[]) => A[];
86 export function scanl<A, B>(f: (x: A) => (y: B) => A, memo: A): (xs: B[]) => A[];
87 export function scanl<A, B>(f: (x: A) => (y: B) => A, memo: A, xs: B[]): A[];
88 export function scan1<A>(f: (x: A) => (y: A) => A): (xs: A[]) => A[];
89 export function scan1<A>(f: (x: A) => (y: A) => A, xs: A[]): A[];
90 export function scanl1<A>(f: (x: A) => (y: A) => A): (xs: A[]) => A[];
91 export function scanl1<A>(f: (x: A) => (y: A) => A, xs: A[]): A[];
92 export function scanr<A, B>(f: (x: A) => (y: B) => B): (memo: B) => (xs: A[]) => B[];
93 export function scanr<A, B>(f: (x: A) => (y: B) => B, memo: B): (xs: A[]) => B[];
94 export function scanr<A, B>(f: (x: A) => (y: B) => B, memo: B, xs: A[]): B[];
95 export function scanr1<A>(f: (x: A) => (y: A) => A): (xs: A[]) => A[];
96 export function scanr1<A>(f: (x: A) => (y: A) => A, xs: A[]): A[];
97 export function slice<A>(x: number): (y: number) => (xs: A[]) => A[];
98 export function slice<A>(x: number, y: number): (xs: A[]) => A[];
99 export function slice<A>(x: number, y: number, xs: A[]): A[];
100 export function take<A>(n: number): (xs: A[]) => A[];
101 export function take<A>(n: number, xs: A[]): A[];
102 export function drop<A>(n: number): (xs: A[]) => A[];
103 export function drop<A>(n: number, xs: A[]): A[];
104 export function splitAt<A>(n: number): (xs: A[]) => [A[], A[]];
105 export function splitAt<A>(n: number, xs: A[]): [A[], A[]];
106 export function takeWhile<A>(p: (x: A) => boolean): (xs: A[]) => A[];
107 export function takeWhile<A>(p: (x: A) => boolean, xs: A[]): A[];
108 export function dropWhile<A>(p: (x: A) => boolean): (xs: A[]) => A[];
109 export function dropWhile<A>(p: (x: A) => boolean, xs: A[]): A[];
110 export function span<A>(p: (x: A) => boolean): (xs: A[]) => [A[], A[]];
111 export function span<A>(p: (x: A) => boolean, xs: A[]): [A[], A[]];
112 export function breakList<A>(p: (x: A) => boolean): (xs: A[]) => [A[], A[]];
113 export function breakList<A>(p: (x: A) => boolean, xs: A[]): [A[], A[]];
114 export function zip<A, B>(xs: A[]): (ys: B[]) => Array<[A, B]>;
115 export function zip<A, B>(xs: A[], ys: B[]): Array<[A, B]>;
116 export function zipWith<A, B, C>(f: (x: A) => (y: B) => C): (xs: A[]) => (ys: B[]) => C[];
117 export function zipWith<A, B, C>(f: (x: A) => (y: B) => C, xs: A[]): (ys: B[]) => C[];
118 export function zipWith<A, B, C>(f: (x: A) => (y: B) => C, xs: A[], ys: B[]): C[];
119 export function zipAll<A>(...xss: A[][]): A[][];
120 export function zipAllWith<A, B>(f: (...xs: A[]) => B, ...xss: A[][]): B[];
121 export function at<A>(n: number): (xs: A[]) => A;
122 export function at<A>(n: number, xs: A[]): A;
123 export function elemIndex<A>(x: A): (xs: A[]) => number;
124 export function elemIndex<A>(x: A, xs: A[]): number;
125 export function elemIndices<A>(x: A): (xs: A[]) => number[];
126 export function elemIndices<A>(x: A, xs: A[]): number[];
127 export function findIndex<A>(f: (x: A) => boolean): (xs: A[]) => number;
128 export function findIndex<A>(f: (x: A) => boolean, xs: A[]): number;
129 export function findIndices<A>(f: (x: A) => boolean): (xs: A[]) => number[];
130 export function findIndices<A>(f: (x: A) => boolean, xs: A[]): number[];
131
132 // Obj
133
134 export function keys<A>(object: { [key: string]: A }): string[];
135 export function keys<A>(object: { [key: number]: A }): number[];
136 export function values<A>(object: { [key: string]: A }): A[];
137 export function values<A>(object: { [key: number]: A }): A[];
138 export function pairsToObj<A>(object: Array<[string, A]>): { [key: string]: A };
139 export function pairsToObj<A>(object: Array<[number, A]>): { [key: number]: A };
140 export function objToPairs<A>(object: { [key: string]: A }): Array<[string, A]>;
141 export function objToPairs<A>(object: { [key: number]: A }): Array<[number, A]>;
142 export function listsToObj<A>(keys: string[]): (values: A[]) => { [key: string]: A };
143 export function listsToObj<A>(keys: string[], values: A[]): { [key: string]: A };
144 export function listsToObj<A>(keys: number[]): (values: A[]) => { [key: number]: A };
145 export function listsToObj<A>(keys: number[], values: A[]): { [key: number]: A };
146 export function objToLists<A>(object: { [key: string]: A }): [string[], A[]];
147 export function objToLists<A>(object: { [key: number]: A }): [number[], A[]];
148 export function empty<A>(object: any): boolean;
149 export function each<A>(f: (x: A) => void): (object: { [key: string]: A }) => { [key: string]: A };
150 export function each<A>(f: (x: A) => void, object: { [key: string]: A }): { [key: string]: A };
151 export function each<A>(f: (x: A) => void): (object: { [key: number]: A }) => { [key: number]: A };
152 export function each<A>(f: (x: A) => void, object: { [key: number]: A }): { [key: number]: A };
153 export function map<A, B>(f: (x: A) => B): (object: { [key: string]: A }) => { [key: string]: B };
154 export function map<A, B>(f: (x: A) => B, object: { [key: string]: A }): { [key: string]: B };
155 export function map<A, B>(f: (x: A) => B): (object: { [key: number]: A }) => { [key: number]: B };
156 export function map<A, B>(f: (x: A) => B, object: { [key: number]: A }): { [key: number]: B };
157 export function compact<A>(object: { [key: string]: A }): { [key: string]: A };
158 export function compact<A>(object: { [key: number]: A }): { [key: number]: A };
159 export function filter<A>(f: (x: A) => boolean): (object: { [key: string]: A }) => { [key: string]: A };
160 export function filter<A>(f: (x: A) => boolean, object: { [key: string]: A }): { [key: string]: A };
161 export function filter<A>(f: (x: A) => boolean): (object: { [key: number]: A }) => { [key: number]: A };
162 export function filter<A>(f: (x: A) => boolean, object: { [key: number]: A }): { [key: number]: A };
163 export function reject<A>(f: (x: A) => boolean): (object: { [key: string]: A }) => { [key: string]: A };
164 export function reject<A>(f: (x: A) => boolean, object: { [key: string]: A }): { [key: string]: A };
165 export function reject<A>(f: (x: A) => boolean): (object: { [key: number]: A }) => { [key: number]: A };
166 export function reject<A>(f: (x: A) => boolean, object: { [key: number]: A }): { [key: number]: A };
167 export function partition<A>(
168 f: (x: A) => boolean,
169 ): (object: { [key: string]: A }) => [{ [key: string]: A }, { [key: string]: A }];
170 export function partition<A>(
171 f: (x: A) => boolean,
172 object: { [key: string]: A },
173 ): [{ [key: string]: A }, { [key: string]: A }];
174 export function partition<A>(
175 f: (x: A) => boolean,
176 ): (object: { [key: number]: A }) => [{ [key: number]: A }, { [key: number]: A }];
177 export function partition<A>(
178 f: (x: A) => boolean,
179 object: { [key: number]: A },
180 ): [{ [key: number]: A }, { [key: number]: A }];
181 export function find<A>(f: (x: A) => boolean): (object: { [key: string]: A }) => A;
182 export function find<A>(f: (x: A) => boolean, object: { [key: string]: A }): A;
183 export function find<A>(f: (x: A) => boolean): (object: { [key: number]: A }) => A;
184 export function find<A>(f: (x: A) => boolean, object: { [key: number]: A }): A;
185
186 export namespace Obj {
187 export function empty<A>(object: any): boolean;
188 export function each<A>(f: (x: A) => void): (object: { [key: string]: A }) => { [key: string]: A };
189 export function each<A>(f: (x: A) => void, object: { [key: string]: A }): { [key: string]: A };
190 export function each<A>(f: (x: A) => void): (object: { [key: number]: A }) => { [key: number]: A };
191 export function each<A>(f: (x: A) => void, object: { [key: number]: A }): { [key: number]: A };
192 export function map<A, B>(f: (x: A) => B): (object: { [key: string]: A }) => { [key: string]: B };
193 export function map<A, B>(f: (x: A) => B, object: { [key: string]: A }): { [key: string]: B };
194 export function map<A, B>(f: (x: A) => B): (object: { [key: number]: A }) => { [key: number]: B };
195 export function map<A, B>(f: (x: A) => B, object: { [key: number]: A }): { [key: number]: B };
196 export function compact<A>(object: { [key: string]: A }): { [key: string]: A };
197 export function compact<A>(object: { [key: number]: A }): { [key: number]: A };
198 export function filter<A>(f: (x: A) => boolean): (object: { [key: string]: A }) => { [key: string]: A };
199 export function filter<A>(f: (x: A) => boolean, object: { [key: string]: A }): { [key: string]: A };
200 export function filter<A>(f: (x: A) => boolean): (object: { [key: number]: A }) => { [key: number]: A };
201 export function filter<A>(f: (x: A) => boolean, object: { [key: number]: A }): { [key: number]: A };
202 export function reject<A>(f: (x: A) => boolean): (object: { [key: string]: A }) => { [key: string]: A };
203 export function reject<A>(f: (x: A) => boolean, object: { [key: string]: A }): { [key: string]: A };
204 export function reject<A>(f: (x: A) => boolean): (object: { [key: number]: A }) => { [key: number]: A };
205 export function reject<A>(f: (x: A) => boolean, object: { [key: number]: A }): { [key: number]: A };
206 export function partition<A>(
207 f: (x: A) => boolean,
208 ): (object: { [key: string]: A }) => [{ [key: string]: A }, { [key: string]: A }];
209 export function partition<A>(
210 f: (x: A) => boolean,
211 object: { [key: string]: A },
212 ): [{ [key: string]: A }, { [key: string]: A }];
213 export function partition<A>(
214 f: (x: A) => boolean,
215 ): (object: { [key: number]: A }) => [{ [key: number]: A }, { [key: number]: A }];
216 export function partition<A>(
217 f: (x: A) => boolean,
218 object: { [key: number]: A },
219 ): [{ [key: number]: A }, { [key: number]: A }];
220 export function find<A>(f: (x: A) => boolean): (object: { [key: string]: A }) => A;
221 export function find<A>(f: (x: A) => boolean, object: { [key: string]: A }): A;
222 export function find<A>(f: (x: A) => boolean): (object: { [key: number]: A }) => A;
223 export function find<A>(f: (x: A) => boolean, object: { [key: number]: A }): A;
224 }
225
226 // Str
227
228 export function split(separator: string): (str: string) => string[];
229 export function split(separator: string, str: string): string[];
230 export function join(separator: string): (xs: string[]) => string;
231 export function join(separator: string, xs: string[]): string;
232 export function lines(str: string): string[];
233 export function unlines(xs: string[]): string;
234 export function words(str: string): string[];
235 export function unwords(xs: string[]): string;
236 export function chars(str: string): string[];
237 export function unchars(xs: string[]): string;
238 export function repeat(n: number): (str: string) => string;
239 export function repeat(n: number, str: string): string;
240 export function capitalize(str: string): string;
241 export function camelize(str: string): string;
242 export function dasherize(str: string): string;
243 export function empty(str: string): boolean;
244 export function reverse(str: string): string;
245 export function slice(x: number): (y: number) => (str: string) => string;
246 export function slice(x: number, y: number): (str: string) => string;
247 export function slice(x: number, y: number, str: string): string;
248 export function take(n: number): (str: string) => string;
249 export function take(n: number, str: string): string;
250 export function drop(n: number): (str: string) => string;
251 export function drop(n: number, str: string): string;
252 export function splitAt(n: number): (str: string) => [string, string];
253 export function splitAt(n: number, str: string): [string, string];
254 export function takeWhile(f: (str: string) => boolean): (str: string) => string;
255 export function takeWhile(f: (str: string) => boolean, str: string): string;
256 export function dropWhile(f: (str: string) => boolean): (str: string) => string;
257 export function dropWhile(f: (str: string) => boolean, str: string): string;
258 export function span(f: (str: string) => boolean): (str: string) => [string, string];
259 export function span(f: (str: string) => boolean, str: string): [string, string];
260 export function breakStr(f: (str: string) => boolean): (str: string) => [string, string];
261 export function breakStr(f: (str: string) => boolean, str: string): [string, string];
262
263 export namespace Str {
264 export function empty(str: string): boolean;
265 export function reverse(str: string): string;
266 export function slice(x: number): (y: number) => (str: string) => string;
267 export function slice(x: number, y: number): (str: string) => string;
268 export function slice(x: number, y: number, str: string): string;
269 export function take(n: number): (str: string) => string;
270 export function take(n: number, str: string): string;
271 export function drop(n: number): (str: string) => string;
272 export function drop(n: number, str: string): string;
273 export function splitAt(n: number): (str: string) => [string, string];
274 export function splitAt(n: number, str: string): [string, string];
275 export function takeWhile(f: (str: string) => boolean): (str: string) => string;
276 export function takeWhile(f: (str: string) => boolean, str: string): string;
277 export function dropWhile(f: (str: string) => boolean): (str: string) => string;
278 export function dropWhile(f: (str: string) => boolean, str: string): string;
279 export function span(f: (str: string) => boolean): (str: string) => [string, string];
280 export function span(f: (str: string) => boolean, str: string): [string, string];
281 export function breakStr(f: (str: string) => boolean): (str: string) => [string, string];
282 export function breakStr(f: (str: string) => boolean, str: string): [string, string];
283 }
284
285 // Func
286
287 export function apply<A, B>(f: (...args: A[]) => B): (args: A[]) => B;
288 export function apply<A, B>(f: (...args: A[]) => B, args: A[]): B;
289 export function curry(f: Function): Function;
290 export function flip<A, B, C>(f: (x: A) => (y: B) => C): (y: B) => (x: A) => C;
291 export function flip<A, B, C>(f: (x: A) => (y: B) => C, y: B): (x: A) => C;
292 export function flip<A, B, C>(f: (x: A) => (y: B) => C, y: B, x: A): C;
293 export function fix(f: Function): Function;
294
295 export function over<A, B, C>(f: (x: B) => (y: B) => C | ((x: B, y: B) => C), g: (x: A) => B, x: A, y: A): C;
296 export function over<A, B, C>(f: (x: B, y: B) => C | ((x: B) => (y: B) => C), g: (x: A) => B, x: A): (y: A) => C;
297 export function over<A, B, C>(f: (x: B, y: B) => C, g: (x: A) => B): (x: A, y: A) => C;
298 export function over<A, B, C>(f: (x: B) => (y: B) => C, g: (x: A) => B): (x: A) => (y: A) => C;
299 export function over<A, B, C>(f: (x: B, y: B) => C): (g: (x: A) => B) => (x: A, y: A) => C;
300 export function over<A, B, C>(f: (x: B) => (y: B) => C): (g: (x: A) => B) => (x: A) => (y: A) => C;
301
302 // Num
303
304 export function max<Comparable>(x: Comparable): (y: Comparable) => Comparable;
305 export function max<Comparable>(x: Comparable, y: Comparable): Comparable;
306 export function min<Comparable>(x: Comparable): (y: Comparable) => Comparable;
307 export function min<Comparable>(x: Comparable, y: Comparable): Comparable;
308 export function negate(x: number): number;
309 export function abs(x: number): number;
310 export function signum(x: number): number;
311 export function quot(x: number): (y: number) => number;
312 export function quot(x: number, y: number): number;
313 export function rem(x: number): (y: number) => number;
314 export function rem(x: number, y: number): number;
315 export function div(x: number): (y: number) => number;
316 export function div(x: number, y: number): number;
317 export function mod(x: number): (y: number) => number;
318 export function mod(x: number, y: number): number;
319 export function recip(x: number): number;
320 export var pi: number;
321 export var tau: number;
322 export function exp(x: number): number;
323 export function sqrt(x: number): number;
324 export function ln(x: number): number;
325 export function pow(x: number): (y: number) => number;
326 export function pow(x: number, y: number): number;
327 export function sin(x: number): number;
328 export function cos(x: number): number;
329 export function tan(x: number): number;
330 export function asin(x: number): number;
331 export function acos(x: number): number;
332 export function atan(x: number): number;
333 export function atan2(x: number, y: number): number;
334 export function truncate(x: number): number;
335 export function round(x: number): number;
336 export function ceiling(x: number): number;
337 export function floor(x: number): number;
338 export function isItNaN(x: number): boolean;
339 export function even(x: number): boolean;
340 export function odd(x: number): boolean;
341 export function gcd(x: number): (y: number) => number;
342 export function gcd(x: number, y: number): number;
343 export function lcm(x: number): (y: number) => number;
344 export function lcm(x: number, y: number): number;
345}
346
347export = PreludeLS;