functionalscript 0.1.596 → 0.1.597
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/com/cpp/module.f.d.mts +4 -4
- package/com/cpp/module.f.mjs +18 -18
- package/com/cs/module.f.mjs +1 -1
- package/com/rust/module.f.d.mts +7 -7
- package/com/rust/module.f.mjs +30 -30
- package/com/test/build.mjs +2 -2
- package/com/types/module.f.mjs +1 -1
- package/commonjs/module/module.f.mjs +1 -1
- package/commonjs/package/dependencies/module.f.d.mts +3 -3
- package/commonjs/package/dependencies/module.f.mjs +3 -3
- package/commonjs/package/module.f.d.mts +6 -6
- package/commonjs/package/module.f.mjs +4 -4
- package/commonjs/path/module.f.d.mts +7 -7
- package/commonjs/path/module.f.mjs +5 -5
- package/commonjs/path/test.f.mjs +7 -7
- package/commonjs/test.mjs +2 -2
- package/djs/module.f.mjs +1 -1
- package/djs/tokenizer/module.f.mjs +1 -1
- package/djs/tokenizer/test.f.mjs +1 -1
- package/html/module.f.mjs +1 -1
- package/js/tokenizer/test.f.mjs +3 -3
- package/json/parser/module.f.d.mts +3 -3
- package/json/parser/module.f.mjs +12 -12
- package/json/parser/test.f.mjs +2 -2
- package/json/serializer/module.f.mjs +2 -2
- package/json/tokenizer/module.f.d.mts +3 -3
- package/json/tokenizer/module.f.mjs +7 -7
- package/json/tokenizer/test.f.mjs +3 -3
- package/jsr.json +1 -1
- package/package.json +1 -1
- package/secp/module.f.d.mts +8 -8
- package/secp/module.f.mjs +6 -6
- package/secp/test.f.mjs +5 -5
- package/sha2/module.f.mjs +1 -1
- package/sha2/test.f.mjs +0 -1
- package/text/utf16/test.f.mjs +2 -2
- package/text/utf8/module.f.d.mts +2 -2
- package/text/utf8/module.f.mjs +2 -2
- package/types/bigint/module.f.d.mts +8 -8
- package/types/bigint/module.f.mjs +5 -5
- package/types/btree/find/module.f.mjs +4 -4
- package/types/btree/find/test.f.mjs +2 -2
- package/types/btree/remove/module.f.d.mts +7 -7
- package/types/btree/remove/module.f.mjs +12 -12
- package/types/btree/remove/test.f.mjs +5 -5
- package/types/btree/set/module.f.d.mts +3 -3
- package/types/btree/set/module.f.mjs +6 -6
- package/types/btree/set/test.f.mjs +32 -32
- package/types/btree/test.f.mjs +7 -11
- package/types/byte_set/module.f.mjs +2 -2
- package/types/byte_set/test.f.mjs +3 -3
- package/types/function/compare/module.f.d.mts +7 -7
- package/types/function/compare/module.f.mjs +4 -4
- package/types/map/module.f.d.mts +2 -2
- package/types/map/module.f.mjs +4 -4
- package/types/range_map/module.f.d.mts +2 -2
- package/types/range_map/module.f.mjs +5 -5
- package/types/range_map/test.f.mjs +2 -2
- package/types/sorted_list/test.f.mjs +2 -2
- package/types/sorted_set/test.f.mjs +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _ from './module.f.mjs'
|
|
2
|
-
import * as
|
|
2
|
+
import * as BTree from '../types/module.f.mjs'
|
|
3
3
|
import s from '../set/module.f.mjs'
|
|
4
4
|
import str from '../../string/module.f.mjs'
|
|
5
5
|
const { cmp } = str
|
|
@@ -7,16 +7,16 @@ import json from '../../../json/module.f.mjs'
|
|
|
7
7
|
import o from '../../object/module.f.mjs'
|
|
8
8
|
const { sort } = o
|
|
9
9
|
|
|
10
|
-
/** @type {(node:
|
|
10
|
+
/** @type {(node: BTree.Node<string>) => (value: string) => BTree.Node<string>} */
|
|
11
11
|
const set = node => value => s.set(cmp(value))(() => value)(node)
|
|
12
12
|
|
|
13
|
-
/** @type {(node:
|
|
13
|
+
/** @type {(node: BTree.Node<string>) => (value: string) => BTree.Node<string> | null} */
|
|
14
14
|
const remove = node => value => _.nodeRemove(cmp(value))(node)
|
|
15
15
|
|
|
16
16
|
const jsonStr = json.stringify(sort)
|
|
17
17
|
|
|
18
18
|
const test = () => {
|
|
19
|
-
/** @type {
|
|
19
|
+
/** @type {BTree.Node<string> | null} */
|
|
20
20
|
let _map = ['1']
|
|
21
21
|
for (let i = 2; i <= 38; i++)
|
|
22
22
|
_map = set(_map)((i * i).toString())
|
|
@@ -411,7 +411,7 @@ const test = () => {
|
|
|
411
411
|
}
|
|
412
412
|
|
|
413
413
|
const test2 = () => {
|
|
414
|
-
/** @type {
|
|
414
|
+
/** @type {BTree.Node<string>|null} */
|
|
415
415
|
let _map = ['1']
|
|
416
416
|
for (let i = 2; i <= 10; i++)
|
|
417
417
|
_map = set(_map)((i * i).toString())
|
|
@@ -3,7 +3,7 @@ declare namespace _default {
|
|
|
3
3
|
}
|
|
4
4
|
export default _default;
|
|
5
5
|
export type Branch1To3<T> = _.Branch1<T> | _.Branch3<T>;
|
|
6
|
-
/** @type {<T>(c:
|
|
7
|
-
declare const set: <T>(c:
|
|
6
|
+
/** @type {<T>(c: Cmp.Compare<T>) => (f: (value: T|null) => T) => (tree: _.Tree<T>) => _.Node<T>} */
|
|
7
|
+
declare const set: <T>(c: Cmp.Compare<T>) => (f: (value: T | null) => T) => (tree: _.Tree<T>) => _.Node<T>;
|
|
8
8
|
import * as _ from '../types/module.f.mjs';
|
|
9
|
-
import * as
|
|
9
|
+
import * as Cmp from '../../function/compare/module.f.mjs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _ from '../types/module.f.mjs'
|
|
2
|
-
import btreeFind, * as
|
|
2
|
+
import btreeFind, * as BtreeFind from '../find/module.f.mjs'
|
|
3
3
|
const { find } = btreeFind
|
|
4
|
-
import
|
|
4
|
+
import * as Cmp from '../../function/compare/module.f.mjs'
|
|
5
5
|
import list from '../../list/module.f.mjs'
|
|
6
6
|
const { fold } = list
|
|
7
7
|
|
|
@@ -13,7 +13,7 @@ const { fold } = list
|
|
|
13
13
|
/** @type {<T>(b: _.Branch5<T> | _.Branch7<T>) => Branch1To3<T>} */
|
|
14
14
|
const b57 = b => b.length === 5 ? [b] : [[b[0], b[1], b[2]], b[3], [b[4], b[5], b[6]]]
|
|
15
15
|
|
|
16
|
-
/** @type {<T>(i:
|
|
16
|
+
/** @type {<T>(i: BtreeFind.PathItem<T>) => (a: Branch1To3<T>) => Branch1To3<T>} */
|
|
17
17
|
const reduceOp = ([i, x]) => a => {
|
|
18
18
|
switch (i) {
|
|
19
19
|
case 0: {
|
|
@@ -36,11 +36,11 @@ const reduceOp = ([i, x]) => a => {
|
|
|
36
36
|
|
|
37
37
|
const reduceBranch = fold(reduceOp)
|
|
38
38
|
|
|
39
|
-
/** @type {<T>(c:
|
|
39
|
+
/** @type {<T>(c: Cmp.Compare<T>) => (g: (value: T | null) => T) => (node: _.Node<T>) => _.Node<T>} */
|
|
40
40
|
const nodeSet = c => g => node => {
|
|
41
41
|
const { first, tail } = find(c)(node)
|
|
42
42
|
const [i, x] = first;
|
|
43
|
-
/** @typedef {typeof c extends
|
|
43
|
+
/** @typedef {typeof c extends Cmp.Compare<infer T> ? T : never} T */
|
|
44
44
|
/** @type {() => Branch1To3<T>} */
|
|
45
45
|
const f = () => {
|
|
46
46
|
switch (i) {
|
|
@@ -87,7 +87,7 @@ const nodeSet = c => g => node => {
|
|
|
87
87
|
return r.length === 1 ? r[0] : r
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
/** @type {<T>(c:
|
|
90
|
+
/** @type {<T>(c: Cmp.Compare<T>) => (f: (value: T|null) => T) => (tree: _.Tree<T>) => _.Node<T>} */
|
|
91
91
|
const set = c => f => tree => tree === null ? [f(null)] : nodeSet(c)(f)(tree)
|
|
92
92
|
|
|
93
93
|
export default {
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import _ from './module.f.mjs'
|
|
2
|
-
import * as
|
|
2
|
+
import * as BTree from '../types/module.f.mjs'
|
|
3
3
|
import s from '../../string/module.f.mjs'
|
|
4
4
|
const { cmp } = s
|
|
5
|
-
import json
|
|
5
|
+
import json from '../../../json/module.f.mjs'
|
|
6
6
|
import o from '../../object/module.f.mjs'
|
|
7
7
|
const { sort } = o
|
|
8
8
|
|
|
9
|
-
/** @type {(node:
|
|
9
|
+
/** @type {(node: BTree.Node<string>) => (value: string) => BTree.Node<string>} */
|
|
10
10
|
const set = node => value => _.set(cmp(value))(() => value)(node)
|
|
11
11
|
|
|
12
12
|
const jsonStr = json.stringify(sort)
|
|
13
13
|
|
|
14
14
|
const test = [
|
|
15
15
|
() => {
|
|
16
|
-
/** @type {
|
|
16
|
+
/** @type {BTree.Node<string>} */
|
|
17
17
|
let _map = ['1']
|
|
18
18
|
for (let i = 2; i <= 10; i++)
|
|
19
19
|
_map = set(_map)((i * i).toString())
|
|
@@ -22,7 +22,7 @@ const test = [
|
|
|
22
22
|
},
|
|
23
23
|
|
|
24
24
|
() => {
|
|
25
|
-
/** @type {
|
|
25
|
+
/** @type {BTree.Node<string>} */
|
|
26
26
|
let _map = ['1']
|
|
27
27
|
for (let i = 2; i <= 11; i++)
|
|
28
28
|
_map = set(_map)((i * i).toString())
|
|
@@ -31,7 +31,7 @@ const test = [
|
|
|
31
31
|
},
|
|
32
32
|
|
|
33
33
|
() => {
|
|
34
|
-
/** @type {
|
|
34
|
+
/** @type {BTree.Node<string>} */
|
|
35
35
|
let _map = ['1']
|
|
36
36
|
for (let i = 2; i <= 12; i++)
|
|
37
37
|
_map = set(_map)((i * i).toString())
|
|
@@ -40,7 +40,7 @@ const test = [
|
|
|
40
40
|
},
|
|
41
41
|
|
|
42
42
|
() => {
|
|
43
|
-
/** @type {
|
|
43
|
+
/** @type {BTree.Node<string>} */
|
|
44
44
|
let _map = ['1']
|
|
45
45
|
for (let i = 2; i <= 13; i++)
|
|
46
46
|
_map = set(_map)((i * i).toString())
|
|
@@ -49,7 +49,7 @@ const test = [
|
|
|
49
49
|
},
|
|
50
50
|
|
|
51
51
|
() => {
|
|
52
|
-
/** @type {
|
|
52
|
+
/** @type {BTree.Node<string>} */
|
|
53
53
|
let _map = ['1']
|
|
54
54
|
for (let i = 2; i <= 14; i++)
|
|
55
55
|
_map = set(_map)((i * i).toString())
|
|
@@ -58,7 +58,7 @@ const test = [
|
|
|
58
58
|
},
|
|
59
59
|
|
|
60
60
|
() => {
|
|
61
|
-
/** @type {
|
|
61
|
+
/** @type {BTree.Node<string>} */
|
|
62
62
|
let _map = ['1']
|
|
63
63
|
for (let i = 2; i <= 15; i++)
|
|
64
64
|
_map = set(_map)((i * i).toString())
|
|
@@ -67,7 +67,7 @@ const test = [
|
|
|
67
67
|
},
|
|
68
68
|
|
|
69
69
|
() => {
|
|
70
|
-
/** @type {
|
|
70
|
+
/** @type {BTree.Node<string>} */
|
|
71
71
|
let _map = ['1']
|
|
72
72
|
for (let i = 2; i <= 16; i++)
|
|
73
73
|
_map = set(_map)((i * i).toString())
|
|
@@ -76,7 +76,7 @@ const test = [
|
|
|
76
76
|
},
|
|
77
77
|
|
|
78
78
|
() => {
|
|
79
|
-
/** @type {
|
|
79
|
+
/** @type {BTree.Node<string>} */
|
|
80
80
|
let _map = ['1']
|
|
81
81
|
for (let i = 2; i <= 17; i++)
|
|
82
82
|
_map = set(_map)((i * i).toString())
|
|
@@ -85,7 +85,7 @@ const test = [
|
|
|
85
85
|
},
|
|
86
86
|
|
|
87
87
|
() => {
|
|
88
|
-
/** @type {
|
|
88
|
+
/** @type {BTree.Node<string>} */
|
|
89
89
|
let _map = ['1']
|
|
90
90
|
for (let i = 2; i <= 18; i++)
|
|
91
91
|
_map = set(_map)((i * i).toString())
|
|
@@ -96,7 +96,7 @@ const test = [
|
|
|
96
96
|
},
|
|
97
97
|
|
|
98
98
|
() => {
|
|
99
|
-
/** @type {
|
|
99
|
+
/** @type {BTree.Node<string>} */
|
|
100
100
|
let _map = ['1']
|
|
101
101
|
for (let i = 2; i <= 19; i++)
|
|
102
102
|
_map = set(_map)((i * i).toString())
|
|
@@ -107,7 +107,7 @@ const test = [
|
|
|
107
107
|
},
|
|
108
108
|
|
|
109
109
|
() => {
|
|
110
|
-
/** @type {
|
|
110
|
+
/** @type {BTree.Node<string>} */
|
|
111
111
|
let _map = ['1']
|
|
112
112
|
for (let i = 2; i <= 20; i++)
|
|
113
113
|
_map = set(_map)((i * i).toString())
|
|
@@ -120,7 +120,7 @@ const test = [
|
|
|
120
120
|
},
|
|
121
121
|
|
|
122
122
|
() => {
|
|
123
|
-
/** @type {
|
|
123
|
+
/** @type {BTree.Node<string>} */
|
|
124
124
|
let _map = ['1']
|
|
125
125
|
for (let i = 2; i <= 21; i++)
|
|
126
126
|
_map = set(_map)((i * i).toString())
|
|
@@ -133,7 +133,7 @@ const test = [
|
|
|
133
133
|
},
|
|
134
134
|
|
|
135
135
|
() => {
|
|
136
|
-
/** @type {
|
|
136
|
+
/** @type {BTree.Node<string>} */
|
|
137
137
|
let _map = ['1']
|
|
138
138
|
for (let i = 2; i <= 22; i++)
|
|
139
139
|
_map = set(_map)((i * i).toString())
|
|
@@ -146,7 +146,7 @@ const test = [
|
|
|
146
146
|
},
|
|
147
147
|
|
|
148
148
|
() => {
|
|
149
|
-
/** @type {
|
|
149
|
+
/** @type {BTree.Node<string>} */
|
|
150
150
|
let _map = ['1']
|
|
151
151
|
for (let i = 2; i <= 23; i++)
|
|
152
152
|
_map = set(_map)((i * i).toString())
|
|
@@ -159,7 +159,7 @@ const test = [
|
|
|
159
159
|
},
|
|
160
160
|
|
|
161
161
|
() => {
|
|
162
|
-
/** @type {
|
|
162
|
+
/** @type {BTree.Node<string>} */
|
|
163
163
|
let _map = ['1']
|
|
164
164
|
for (let i = 2; i <= 24; i++)
|
|
165
165
|
_map = set(_map)((i * i).toString())
|
|
@@ -172,7 +172,7 @@ const test = [
|
|
|
172
172
|
},
|
|
173
173
|
|
|
174
174
|
() => {
|
|
175
|
-
/** @type {
|
|
175
|
+
/** @type {BTree.Node<string>} */
|
|
176
176
|
let _map = ['1']
|
|
177
177
|
for (let i = 2; i <= 25; i++)
|
|
178
178
|
_map = set(_map)((i * i).toString())
|
|
@@ -185,7 +185,7 @@ const test = [
|
|
|
185
185
|
},
|
|
186
186
|
|
|
187
187
|
() => {
|
|
188
|
-
/** @type {
|
|
188
|
+
/** @type {BTree.Node<string>} */
|
|
189
189
|
let _map = ['1']
|
|
190
190
|
for (let i = 2; i <= 26; i++)
|
|
191
191
|
_map = set(_map)((i * i).toString())
|
|
@@ -200,7 +200,7 @@ const test = [
|
|
|
200
200
|
},
|
|
201
201
|
|
|
202
202
|
() => {
|
|
203
|
-
/** @type {
|
|
203
|
+
/** @type {BTree.Node<string>} */
|
|
204
204
|
let _map = ['1']
|
|
205
205
|
for (let i = 2; i <= 27; i++)
|
|
206
206
|
_map = set(_map)((i * i).toString())
|
|
@@ -215,7 +215,7 @@ const test = [
|
|
|
215
215
|
},
|
|
216
216
|
|
|
217
217
|
() => {
|
|
218
|
-
/** @type {
|
|
218
|
+
/** @type {BTree.Node<string>} */
|
|
219
219
|
let _map = ['1']
|
|
220
220
|
for (let i = 2; i <= 28; i++)
|
|
221
221
|
_map = set(_map)((i * i).toString())
|
|
@@ -230,7 +230,7 @@ const test = [
|
|
|
230
230
|
},
|
|
231
231
|
|
|
232
232
|
() => {
|
|
233
|
-
/** @type {
|
|
233
|
+
/** @type {BTree.Node<string>} */
|
|
234
234
|
let _map = ['1']
|
|
235
235
|
for (let i = 2; i <= 29; i++)
|
|
236
236
|
_map = set(_map)((i * i).toString())
|
|
@@ -245,7 +245,7 @@ const test = [
|
|
|
245
245
|
},
|
|
246
246
|
|
|
247
247
|
() => {
|
|
248
|
-
/** @type {
|
|
248
|
+
/** @type {BTree.Node<string>} */
|
|
249
249
|
let _map = ['1']
|
|
250
250
|
for (let i = 2; i <= 30; i++)
|
|
251
251
|
_map = set(_map)((i * i).toString())
|
|
@@ -260,7 +260,7 @@ const test = [
|
|
|
260
260
|
},
|
|
261
261
|
|
|
262
262
|
() => {
|
|
263
|
-
/** @type {
|
|
263
|
+
/** @type {BTree.Node<string>} */
|
|
264
264
|
let _map = ['1']
|
|
265
265
|
for (let i = 2; i <= 31; i++)
|
|
266
266
|
_map = set(_map)((i * i).toString())
|
|
@@ -275,7 +275,7 @@ const test = [
|
|
|
275
275
|
},
|
|
276
276
|
|
|
277
277
|
() => {
|
|
278
|
-
/** @type {
|
|
278
|
+
/** @type {BTree.Node<string>} */
|
|
279
279
|
let _map = ['1']
|
|
280
280
|
for (let i = 2; i <= 32; i++)
|
|
281
281
|
_map = set(_map)((i * i).toString())
|
|
@@ -290,7 +290,7 @@ const test = [
|
|
|
290
290
|
},
|
|
291
291
|
|
|
292
292
|
() => {
|
|
293
|
-
/** @type {
|
|
293
|
+
/** @type {BTree.Node<string>} */
|
|
294
294
|
let _map = ['1']
|
|
295
295
|
for (let i = 2; i <= 33; i++)
|
|
296
296
|
_map = set(_map)((i * i).toString())
|
|
@@ -305,7 +305,7 @@ const test = [
|
|
|
305
305
|
},
|
|
306
306
|
|
|
307
307
|
() => {
|
|
308
|
-
/** @type {
|
|
308
|
+
/** @type {BTree.Node<string>} */
|
|
309
309
|
let _map = ['1']
|
|
310
310
|
for (let i = 2; i <= 34; i++)
|
|
311
311
|
_map = set(_map)((i * i).toString())
|
|
@@ -320,7 +320,7 @@ const test = [
|
|
|
320
320
|
},
|
|
321
321
|
|
|
322
322
|
() => {
|
|
323
|
-
/** @type {
|
|
323
|
+
/** @type {BTree.Node<string>} */
|
|
324
324
|
let _map = ['1']
|
|
325
325
|
for (let i = 2; i <= 35; i++)
|
|
326
326
|
_map = set(_map)((i * i).toString())
|
|
@@ -335,7 +335,7 @@ const test = [
|
|
|
335
335
|
},
|
|
336
336
|
|
|
337
337
|
() => {
|
|
338
|
-
/** @type {
|
|
338
|
+
/** @type {BTree.Node<string>} */
|
|
339
339
|
let _map = ['1']
|
|
340
340
|
for (let i = 2; i <= 36; i++)
|
|
341
341
|
_map = set(_map)((i * i).toString())
|
|
@@ -350,7 +350,7 @@ const test = [
|
|
|
350
350
|
},
|
|
351
351
|
|
|
352
352
|
() => {
|
|
353
|
-
/** @type {
|
|
353
|
+
/** @type {BTree.Node<string>} */
|
|
354
354
|
let _map = ['1']
|
|
355
355
|
for (let i = 2; i <= 37; i++)
|
|
356
356
|
_map = set(_map)((i * i).toString())
|
|
@@ -365,7 +365,7 @@ const test = [
|
|
|
365
365
|
},
|
|
366
366
|
|
|
367
367
|
() => {
|
|
368
|
-
/** @type {
|
|
368
|
+
/** @type {BTree.Node<string>} */
|
|
369
369
|
let _map = ['1']
|
|
370
370
|
for (let i = 2; i <= 38; i++)
|
|
371
371
|
_map = set(_map)((i * i).toString())
|
package/types/btree/test.f.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as BTree from './types/module.f.mjs'
|
|
2
2
|
import _ from './module.f.mjs'
|
|
3
3
|
const { values } = _
|
|
4
4
|
import json, * as jsonT from '../../json/module.f.mjs'
|
|
@@ -10,20 +10,16 @@ import list, * as List from '../list/module.f.mjs'
|
|
|
10
10
|
import s from './set/module.f.mjs'
|
|
11
11
|
import f from './find/module.f.mjs'
|
|
12
12
|
|
|
13
|
-
// require('./find/test.f.mjs')
|
|
14
|
-
// require('./set/test.f.mjs')
|
|
15
|
-
// require('./remove/test.f.mjs')
|
|
16
|
-
|
|
17
13
|
const jsonStr = json.stringify(sort)
|
|
18
14
|
|
|
19
15
|
/** @type {(sequence: List.List<jsonT.Unknown>) => string} */
|
|
20
16
|
const stringify = sequence => jsonStr(list.toArray(sequence))
|
|
21
17
|
|
|
22
|
-
/** @type {(node:
|
|
18
|
+
/** @type {(node: BTree.Node<string>) => (value: string) => BTree.Node<string>} */
|
|
23
19
|
const set = node => value => s.set(cmp(value))(() => value)(node)
|
|
24
20
|
|
|
25
21
|
const valueTest1 = () => {
|
|
26
|
-
/** @type {
|
|
22
|
+
/** @type {BTree.Node<string>} */
|
|
27
23
|
let _map = ['a']
|
|
28
24
|
_map = set(_map)('b')
|
|
29
25
|
_map = set(_map)('c')
|
|
@@ -35,7 +31,7 @@ const valueTest1 = () => {
|
|
|
35
31
|
}
|
|
36
32
|
|
|
37
33
|
const valuesTest2 = () => {
|
|
38
|
-
/** @type {
|
|
34
|
+
/** @type {BTree.Node<string>} */
|
|
39
35
|
let _map = ['1']
|
|
40
36
|
for(let i = 2; i <= 10; i++)
|
|
41
37
|
_map = set(_map)((i*i).toString())
|
|
@@ -44,7 +40,7 @@ const valuesTest2 = () => {
|
|
|
44
40
|
}
|
|
45
41
|
|
|
46
42
|
const findTrue = () => {
|
|
47
|
-
/** @type {
|
|
43
|
+
/** @type {BTree.Node<string>} */
|
|
48
44
|
let _map = ['a']
|
|
49
45
|
_map = set(_map)('b')
|
|
50
46
|
_map = set(_map)('c')
|
|
@@ -53,7 +49,7 @@ const findTrue = () => {
|
|
|
53
49
|
}
|
|
54
50
|
|
|
55
51
|
const find = () => {
|
|
56
|
-
/** @type {
|
|
52
|
+
/** @type {BTree.Node<string>} */
|
|
57
53
|
let _map = ['a']
|
|
58
54
|
_map = set(_map)('b')
|
|
59
55
|
_map = set(_map)('c')
|
|
@@ -62,7 +58,7 @@ const find = () => {
|
|
|
62
58
|
}
|
|
63
59
|
|
|
64
60
|
const test = () => {
|
|
65
|
-
/** @type {
|
|
61
|
+
/** @type {BTree.Node<string>} */
|
|
66
62
|
let _map = ['a']
|
|
67
63
|
_map = set(_map)('b')
|
|
68
64
|
_map = set(_map)('c')
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import f from '../function/module.f.mjs'
|
|
2
|
-
const {
|
|
2
|
+
const { compose } = f
|
|
3
3
|
import * as RangeMap from '../range_map/module.f.mjs'
|
|
4
|
-
import
|
|
4
|
+
import * as SortedSet from '../sorted_set/module.f.mjs'
|
|
5
5
|
import list from '../list/module.f.mjs'
|
|
6
6
|
const { reverse, countdown, flat, map } = list
|
|
7
7
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import _ from './module.f.mjs'
|
|
2
2
|
import list from '../list/module.f.mjs'
|
|
3
3
|
const { every, countdown, map, toArray } = list
|
|
4
|
-
import json, * as
|
|
4
|
+
import json, * as Json from '../../json/module.f.mjs'
|
|
5
5
|
import o from '../object/module.f.mjs'
|
|
6
6
|
const { sort } = o
|
|
7
7
|
|
|
8
|
-
/** @type {(a: readonly
|
|
9
|
-
const stringify =
|
|
8
|
+
/** @type {(a: readonly Json.Unknown[]) => string} */
|
|
9
|
+
const stringify = json.stringify(sort)
|
|
10
10
|
|
|
11
11
|
export default {
|
|
12
12
|
has: [
|
|
@@ -4,18 +4,18 @@ declare namespace _default {
|
|
|
4
4
|
export { index5 };
|
|
5
5
|
}
|
|
6
6
|
export default _default;
|
|
7
|
-
export type Index3 =
|
|
8
|
-
export type Index5 =
|
|
9
|
-
export type Array2<T> =
|
|
7
|
+
export type Index3 = Array.Index3;
|
|
8
|
+
export type Index5 = Array.Index5;
|
|
9
|
+
export type Array2<T> = Array.Array2<T>;
|
|
10
10
|
export type Sign = -1 | 0 | 1;
|
|
11
11
|
export type Compare<T> = (_: T) => Sign;
|
|
12
12
|
/** @type {<T>(a: T) => (b: T) => Sign} */
|
|
13
13
|
declare const unsafeCmp: <T>(a: T) => (b: T) => Sign;
|
|
14
|
-
/** @typedef {
|
|
15
|
-
/** @typedef {
|
|
14
|
+
/** @typedef {Array.Index3} Index3 */
|
|
15
|
+
/** @typedef {Array.Index5} Index5 */
|
|
16
16
|
/**
|
|
17
17
|
* @template T
|
|
18
|
-
* @typedef {
|
|
18
|
+
* @typedef {Array.Array2<T>} Array2
|
|
19
19
|
*/
|
|
20
20
|
/** @typedef {-1|0|1} Sign */
|
|
21
21
|
/**
|
|
@@ -26,4 +26,4 @@ declare const unsafeCmp: <T>(a: T) => (b: T) => Sign;
|
|
|
26
26
|
declare const index3: <T>(cmp: Compare<T>) => (value: T) => Index3;
|
|
27
27
|
/** @type {<T>(cmp: Compare<T>) => (v2: Array2<T>) => Index5} */
|
|
28
28
|
declare const index5: <T>(cmp: Compare<T>) => (v2: Array2<T>) => Index5;
|
|
29
|
-
import * as
|
|
29
|
+
import * as Array from '../../array/module.f.mjs';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as Array from '../../array/module.f.mjs'
|
|
2
2
|
|
|
3
|
-
/** @typedef {
|
|
4
|
-
/** @typedef {
|
|
3
|
+
/** @typedef {Array.Index3} Index3 */
|
|
4
|
+
/** @typedef {Array.Index5} Index5 */
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @template T
|
|
8
|
-
* @typedef {
|
|
8
|
+
* @typedef {Array.Array2<T>} Array2
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
/** @typedef {-1|0|1} Sign */
|
package/types/map/module.f.d.mts
CHANGED
|
@@ -11,7 +11,7 @@ export default _default;
|
|
|
11
11
|
export type Sign = Compare.Sign;
|
|
12
12
|
export type Cmp<T> = Compare.Compare<T>;
|
|
13
13
|
export type Entry<T> = readonly [string, T];
|
|
14
|
-
export type Map<T> =
|
|
14
|
+
export type Map<T> = BtreeTypes.Tree<Entry<T>>;
|
|
15
15
|
/** @type {(name: string) => <T>(map: Map<T>) => T|null} */
|
|
16
16
|
declare const at: (name: string) => <T>(map: Map<T>) => T | null;
|
|
17
17
|
/** @type {<T>(reduce: Operator.Reduce<T>) => (name: string) => (value: T) => (map: Map<T>) => Map<T>} */
|
|
@@ -25,6 +25,6 @@ declare const fromEntries: <T>(entries: List.List<Entry<T>>) => Map<T>;
|
|
|
25
25
|
/** @type {(name: string) => <T>(map: Map<T>) => Map<T>} */
|
|
26
26
|
declare const remove: (name: string) => <T>(map: Map<T>) => Map<T>;
|
|
27
27
|
import * as Compare from '../function/compare/module.f.mjs';
|
|
28
|
-
import * as
|
|
28
|
+
import * as BtreeTypes from '../btree/types/module.f.mjs';
|
|
29
29
|
import * as Operator from '../function/operator/module.f.mjs';
|
|
30
30
|
import * as List from '../list/module.f.mjs';
|
package/types/map/module.f.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as BtreeTypes from '../btree/types/module.f.mjs'
|
|
2
2
|
import btf from '../btree/find/module.f.mjs'
|
|
3
3
|
const { value, find } = btf
|
|
4
4
|
import bts from '../btree/set/module.f.mjs'
|
|
@@ -7,12 +7,12 @@ import btr from '../btree/remove/module.f.mjs'
|
|
|
7
7
|
const { remove: btreeRemove } = btr
|
|
8
8
|
import bt from '../btree/module.f.mjs'
|
|
9
9
|
const { values } = bt
|
|
10
|
-
import
|
|
10
|
+
import * as Compare from '../function/compare/module.f.mjs'
|
|
11
11
|
import s from '../string/module.f.mjs'
|
|
12
12
|
const { cmp } = s
|
|
13
13
|
import list, * as List from '../list/module.f.mjs'
|
|
14
14
|
const { fold } = list
|
|
15
|
-
import
|
|
15
|
+
import * as Operator from '../function/operator/module.f.mjs'
|
|
16
16
|
|
|
17
17
|
/** @typedef {Compare.Sign} Sign */
|
|
18
18
|
|
|
@@ -28,7 +28,7 @@ import operator, * as Operator from '../function/operator/module.f.mjs'
|
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* @template T
|
|
31
|
-
* @typedef {
|
|
31
|
+
* @typedef {BtreeTypes.Tree<Entry<T>>} Map
|
|
32
32
|
*/
|
|
33
33
|
|
|
34
34
|
/** @type {(a: string) => <T>(b: Entry<T>) => Sign} */
|
|
@@ -5,7 +5,7 @@ declare namespace _default {
|
|
|
5
5
|
}
|
|
6
6
|
export default _default;
|
|
7
7
|
export type Entry<T> = [T, number];
|
|
8
|
-
export type RangeMap<T> =
|
|
8
|
+
export type RangeMap<T> = SortedList.SortedList<Entry<T>>;
|
|
9
9
|
export type RangeMapArray<T> = readonly Entry<T>[];
|
|
10
10
|
export type Operators<T> = {
|
|
11
11
|
readonly union: O.Reduce<T>;
|
|
@@ -19,7 +19,7 @@ declare const merge: <T>(op: Operators<T>) => RangeMerge<T>;
|
|
|
19
19
|
declare const get: <T>(def: T) => (value: number) => (rm: RangeMapArray<T>) => T;
|
|
20
20
|
/** @type {<T>(def: T) => (r: Range.Range) => (value: T) => RangeMapArray<T>} */
|
|
21
21
|
declare const fromRange: <T>(def: T) => (r: Range.Range) => (value: T) => RangeMapArray<T>;
|
|
22
|
-
import * as
|
|
22
|
+
import * as SortedList from '../sorted_list/module.f.mjs';
|
|
23
23
|
import * as O from '../function/operator/module.f.mjs';
|
|
24
24
|
import * as Option from '../nullable/module.f.mjs';
|
|
25
25
|
import * as Range from '../range/module.f.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import sortedList, * as
|
|
1
|
+
import sortedList, * as SortedList from '../sorted_list/module.f.mjs'
|
|
2
2
|
const { genericMerge } = sortedList
|
|
3
3
|
import list from '../list/module.f.mjs'
|
|
4
4
|
const { next } = list
|
|
@@ -6,7 +6,7 @@ import * as Option from '../nullable/module.f.mjs'
|
|
|
6
6
|
import number from '../number/module.f.mjs'
|
|
7
7
|
const { cmp } = number
|
|
8
8
|
import * as O from '../function/operator/module.f.mjs'
|
|
9
|
-
import
|
|
9
|
+
import * as Range from '../range/module.f.mjs'
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* @template T
|
|
@@ -15,7 +15,7 @@ import _range, * as Range from '../range/module.f.mjs'
|
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* @template T
|
|
18
|
-
* @typedef {
|
|
18
|
+
* @typedef {SortedList.SortedList<Entry<T>>} RangeMap
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
/**
|
|
@@ -41,7 +41,7 @@ import _range, * as Range from '../range/module.f.mjs'
|
|
|
41
41
|
* @typedef {O.Reduce<RangeMap<T>>} RangeMerge
|
|
42
42
|
*/
|
|
43
43
|
|
|
44
|
-
/** @type {<T>(union: O.Reduce<T>) => (equal: O.Equal<T>) =>
|
|
44
|
+
/** @type {<T>(union: O.Reduce<T>) => (equal: O.Equal<T>) => SortedList.ReduceOp<Entry<T>, RangeState<T>>} */
|
|
45
45
|
const reduceOp = union => equal => state => ([aItem, aMax]) => ([bItem, bMax]) => {
|
|
46
46
|
const sign = cmp(aMax)(bMax)
|
|
47
47
|
const min = sign === 1 ? bMax : aMax
|
|
@@ -50,7 +50,7 @@ const reduceOp = union => equal => state => ([aItem, aMax]) => ([bItem, bMax]) =
|
|
|
50
50
|
return [newState, sign, [u, min]]
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
/** @type {<T>(equal: O.Equal<T>) =>
|
|
53
|
+
/** @type {<T>(equal: O.Equal<T>) => SortedList.TailReduce<Entry<T>, RangeState<T>>} */
|
|
54
54
|
const tailReduce = equal => state => tail => {
|
|
55
55
|
if (state === null) { return tail }
|
|
56
56
|
const tailResult = next(tail)
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import _, * as T from './module.f.mjs'
|
|
2
2
|
import compare from '../function/compare/module.f.mjs'
|
|
3
3
|
const { unsafeCmp } = compare
|
|
4
|
-
import json, * as
|
|
4
|
+
import json, * as Json from '../../json/module.f.mjs'
|
|
5
5
|
import object from '../object/module.f.mjs'
|
|
6
6
|
const { sort } = object
|
|
7
7
|
import sortedSet, * as SortedSet from '../sorted_set/module.f.mjs'
|
|
8
8
|
import list from '../list/module.f.mjs'
|
|
9
9
|
import operator from '../function/operator/module.f.mjs'
|
|
10
10
|
|
|
11
|
-
/** @type {(a: readonly
|
|
11
|
+
/** @type {(a: readonly Json.Unknown[]) => string} */
|
|
12
12
|
const stringify = json.stringify(sort)
|
|
13
13
|
|
|
14
14
|
/** @type {T.Operators<SortedSet.SortedSet<string>>} */
|
|
@@ -6,12 +6,12 @@ import object from '../object/module.f.mjs'
|
|
|
6
6
|
const { sort } = object
|
|
7
7
|
import list from '../list/module.f.mjs'
|
|
8
8
|
const { toArray, countdown, length } = list
|
|
9
|
-
import
|
|
9
|
+
import * as Map from '../map/module.f.mjs'
|
|
10
10
|
import f from '../function/module.f.mjs'
|
|
11
11
|
const { flip } = f
|
|
12
12
|
|
|
13
13
|
/** @type {(a: readonly Json.Unknown[]) => string} */
|
|
14
|
-
const stringify =
|
|
14
|
+
const stringify = json.stringify(sort)
|
|
15
15
|
|
|
16
16
|
/** @type {<T>(a: T) => (b: T) => Map.Sign} */
|
|
17
17
|
const reverseCmp = flip(unsafeCmp)
|
|
@@ -6,7 +6,7 @@ import object from '../object/module.f.mjs'
|
|
|
6
6
|
const { sort } = object
|
|
7
7
|
import list from '../list/module.f.mjs'
|
|
8
8
|
const { toArray, countdown, length } = list
|
|
9
|
-
import
|
|
9
|
+
import * as Map from '../map/module.f.mjs'
|
|
10
10
|
import f from '../function/module.f.mjs'
|
|
11
11
|
const { flip } = f
|
|
12
12
|
|