functionalscript 0.1.609 → 0.2.0
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 -8
- package/com/cpp/module.f.mjs +20 -25
- package/com/cpp/testlib.f.mjs +3 -4
- package/com/cs/module.f.d.mts +4 -8
- package/com/cs/module.f.mjs +18 -23
- package/com/cs/testlib.f.mjs +3 -5
- package/com/rust/module.f.d.mts +3 -7
- package/com/rust/module.f.mjs +25 -30
- package/com/rust/testlib.f.mjs +3 -5
- package/com/test/build.f.d.mts +2 -2
- package/com/test/build.f.mjs +2 -2
- package/com/test/build.mjs +4 -4
- package/com/types/module.f.d.mts +5 -10
- package/com/types/module.f.mjs +5 -12
- package/commonjs/build/module.f.d.mts +13 -17
- package/commonjs/build/module.f.mjs +23 -28
- package/commonjs/build/test.f.mjs +4 -4
- package/commonjs/module/function/module.f.d.mts +0 -2
- package/commonjs/module/function/module.f.mjs +0 -2
- package/commonjs/module/module.f.d.mts +16 -21
- package/commonjs/module/module.f.mjs +2 -9
- package/commonjs/module.d.mts +1 -5
- package/commonjs/module.f.d.mts +0 -2
- package/commonjs/module.f.mjs +0 -2
- package/commonjs/module.mjs +2 -7
- package/commonjs/package/dependencies/module.f.d.mts +3 -7
- package/commonjs/package/dependencies/module.f.mjs +5 -10
- package/commonjs/package/dependencies/test.f.mjs +1 -1
- package/commonjs/package/module.f.d.mts +12 -18
- package/commonjs/package/module.f.mjs +6 -13
- package/commonjs/package/test.f.mjs +1 -1
- package/commonjs/path/module.f.d.mts +25 -32
- package/commonjs/path/module.f.mjs +12 -23
- package/commonjs/path/test.f.mjs +11 -11
- package/commonjs/test.mjs +1 -1
- package/dev/module.f.d.mts +1 -4
- package/dev/module.f.mjs +1 -4
- package/dev/test/module.f.d.mts +2 -3
- package/dev/test/module.f.mjs +4 -6
- package/djs/module.f.d.mts +13 -18
- package/djs/module.f.mjs +12 -19
- package/djs/parser/module.f.d.mts +11 -15
- package/djs/parser/module.f.mjs +18 -24
- package/djs/parser/test.f.mjs +9 -9
- package/djs/test.f.mjs +4 -4
- package/djs/tokenizer/module.f.d.mts +6 -10
- package/djs/tokenizer/module.f.mjs +18 -23
- package/djs/tokenizer/test.f.mjs +6 -6
- package/fsc/module.f.d.mts +4 -9
- package/fsc/module.f.mjs +17 -24
- package/fsc/test.f.mjs +3 -3
- package/fsm/module.f.d.mts +13 -20
- package/fsm/module.f.mjs +27 -38
- package/fsm/test.f.mjs +8 -8
- package/html/module.f.d.mts +7 -12
- package/html/module.f.mjs +14 -23
- package/html/test.f.mjs +4 -4
- package/js/tokenizer/module.f.d.mts +10 -15
- package/js/tokenizer/module.f.mjs +55 -62
- package/js/tokenizer/test.f.mjs +6 -6
- package/json/module.f.d.mts +18 -26
- package/json/module.f.mjs +18 -31
- package/json/parser/module.f.d.mts +9 -13
- package/json/parser/module.f.mjs +9 -14
- package/json/parser/test.f.mjs +7 -7
- package/json/serializer/module.f.d.mts +11 -20
- package/json/serializer/module.f.mjs +14 -29
- package/json/serializer/test.f.mjs +2 -2
- package/json/test.f.mjs +3 -3
- package/json/tokenizer/module.f.d.mts +6 -10
- package/json/tokenizer/module.f.mjs +14 -19
- package/json/tokenizer/test.f.mjs +6 -6
- package/jsr.json +1 -1
- package/nodejs/version/main.mjs +1 -1
- package/nodejs/version/module.f.d.mts +4 -9
- package/nodejs/version/module.f.mjs +2 -7
- package/nodejs/version/test.f.mjs +3 -3
- package/package.json +1 -1
- package/prime_field/module.f.d.mts +20 -23
- package/prime_field/module.f.mjs +9 -12
- package/prime_field/test.f.mjs +1 -1
- package/secp/module.f.d.mts +27 -28
- package/secp/module.f.mjs +38 -39
- package/secp/test.f.mjs +4 -4
- package/sha2/module.f.d.mts +8 -16
- package/sha2/module.f.mjs +7 -20
- package/sha2/test.f.mjs +4 -4
- package/text/ascii/module.f.d.mts +69 -72
- package/text/ascii/module.f.mjs +5 -10
- package/text/ascii/test.f.mjs +3 -3
- package/text/module.f.d.mts +9 -14
- package/text/module.f.mjs +7 -14
- package/text/sgr/module.f.d.mts +7 -9
- package/text/sgr/module.f.mjs +2 -4
- package/text/test.f.mjs +3 -3
- package/text/utf16/module.f.d.mts +8 -15
- package/text/utf16/module.f.mjs +17 -28
- package/text/utf16/test.f.mjs +5 -5
- package/text/utf8/module.f.d.mts +4 -9
- package/text/utf8/module.f.mjs +9 -16
- package/text/utf8/test.f.mjs +4 -4
- package/types/array/module.f.d.mts +14 -24
- package/types/array/module.f.mjs +8 -25
- package/types/array/test.f.mjs +3 -3
- package/types/bigfloat/module.f.d.mts +4 -9
- package/types/bigfloat/module.f.mjs +3 -10
- package/types/bigfloat/test.f.mjs +1 -1
- package/types/bigint/module.f.d.mts +16 -64
- package/types/bigint/module.f.mjs +11 -30
- package/types/bigint/test.f.mjs +1 -1
- package/types/btree/find/module.f.d.mts +20 -26
- package/types/btree/find/module.f.mjs +8 -17
- package/types/btree/find/test.f.mjs +7 -7
- package/types/btree/module.f.d.mts +4 -8
- package/types/btree/module.f.mjs +6 -11
- package/types/btree/remove/module.f.d.mts +7 -12
- package/types/btree/remove/module.f.mjs +10 -17
- package/types/btree/remove/test.f.mjs +5 -5
- package/types/btree/set/module.f.d.mts +3 -7
- package/types/btree/set/module.f.mjs +4 -9
- package/types/btree/set/test.f.mjs +4 -4
- package/types/btree/test.f.mjs +9 -9
- package/types/btree/types/module.f.d.mts +0 -2
- package/types/btree/types/module.f.mjs +0 -2
- package/types/byte_set/module.f.d.mts +16 -29
- package/types/byte_set/module.f.mjs +14 -39
- package/types/byte_set/test.f.mjs +5 -5
- package/types/function/compare/module.f.d.mts +9 -15
- package/types/function/compare/module.f.mjs +3 -12
- package/types/function/compare/test.f.mjs +1 -1
- package/types/function/module.f.d.mts +20 -27
- package/types/function/module.f.mjs +4 -15
- package/types/function/operator/module.f.d.mts +28 -43
- package/types/function/operator/module.f.mjs +14 -41
- package/types/function/test.f.mjs +1 -1
- package/types/list/module.f.d.mts +56 -91
- package/types/list/module.f.mjs +45 -114
- package/types/list/test.f.mjs +10 -10
- package/types/map/module.f.d.mts +15 -24
- package/types/map/module.f.mjs +15 -30
- package/types/map/test.f.mjs +2 -2
- package/types/nibble_set/module.f.d.mts +10 -20
- package/types/nibble_set/module.f.mjs +7 -24
- package/types/nibble_set/test.f.mjs +2 -2
- package/types/nullable/module.f.d.mts +3 -8
- package/types/nullable/module.f.mjs +2 -9
- package/types/nullable/test.f.mjs +1 -1
- package/types/number/module.f.d.mts +7 -13
- package/types/number/module.f.mjs +8 -19
- package/types/number/test.f.mjs +1 -1
- package/types/object/module.f.d.mts +11 -18
- package/types/object/module.f.mjs +9 -20
- package/types/object/test.f.mjs +1 -1
- package/types/range/module.f.d.mts +3 -8
- package/types/range/module.f.mjs +2 -9
- package/types/range/test.f.mjs +1 -1
- package/types/range_map/module.f.d.mts +9 -15
- package/types/range_map/module.f.mjs +9 -18
- package/types/range_map/test.f.mjs +32 -32
- package/types/result/module.d.mts +3 -3
- package/types/result/module.f.d.mts +6 -12
- package/types/result/module.f.mjs +3 -12
- package/types/result/module.mjs +2 -2
- package/types/sorted_list/module.f.d.mts +22 -28
- package/types/sorted_list/module.f.mjs +10 -19
- package/types/sorted_list/test.f.mjs +7 -7
- package/types/sorted_set/module.f.d.mts +6 -12
- package/types/sorted_set/module.f.mjs +7 -16
- package/types/sorted_set/test.f.mjs +7 -7
- package/types/string/module.f.d.mts +8 -14
- package/types/string/module.f.mjs +10 -21
- package/types/string/test.f.mjs +2 -2
- package/types/string_set/module.f.d.mts +8 -16
- package/types/string_set/module.f.mjs +12 -27
- package/types/string_set/test.f.mjs +1 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// @ts-self-types="./module.f.d.mts"
|
|
2
2
|
import * as compare from '../function/compare/module.f.mjs'
|
|
3
|
-
import
|
|
3
|
+
import * as list from '../list/module.f.mjs'
|
|
4
4
|
import * as option from '../nullable/module.f.mjs'
|
|
5
5
|
const { next } = list
|
|
6
|
-
import f from '../function/module.f.mjs'
|
|
6
|
+
import * as f from '../function/module.f.mjs'
|
|
7
7
|
const { identity } = f
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* @template T
|
|
11
|
-
* @typedef {
|
|
11
|
+
* @typedef {list.List<T>} SortedList
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -30,7 +30,7 @@ const { identity } = f
|
|
|
30
30
|
/**
|
|
31
31
|
* @template T
|
|
32
32
|
* @template S
|
|
33
|
-
* @typedef {(state: S) => (tail:
|
|
33
|
+
* @typedef {(state: S) => (tail: list.List<T>) => list.List<T>} TailReduce
|
|
34
34
|
*/
|
|
35
35
|
|
|
36
36
|
/**
|
|
@@ -42,12 +42,12 @@ const { identity } = f
|
|
|
42
42
|
* }} MergeReduce
|
|
43
43
|
*/
|
|
44
44
|
|
|
45
|
-
/** @type {<T,S>(reduce: MergeReduce<T,S>) => (state: S) => (a:
|
|
46
|
-
const genericMerge = ({ reduceOp, tailReduce }) => {
|
|
45
|
+
/** @type {<T,S>(reduce: MergeReduce<T,S>) => (state: S) => (a: list.List<T>) => (b: list.List<T>) => list.List<T>} */
|
|
46
|
+
export const genericMerge = ({ reduceOp, tailReduce }) => {
|
|
47
47
|
/** @typedef {typeof reduceOp extends ReduceOp<infer T, infer S> ? [T, S] : never} TS */
|
|
48
48
|
/** @typedef {TS[0]} T */
|
|
49
49
|
/** @typedef {TS[1]} S */
|
|
50
|
-
/** @type {(state: S) => (a:
|
|
50
|
+
/** @type {(state: S) => (a: list.List<T>) => (b: list.List<T>) => list.List<T>} */
|
|
51
51
|
const f = state => a => b => () => {
|
|
52
52
|
const aResult = next(a)
|
|
53
53
|
if (aResult === null) { return tailReduce(state)(b) }
|
|
@@ -68,7 +68,7 @@ const genericMerge = ({ reduceOp, tailReduce }) => {
|
|
|
68
68
|
*/
|
|
69
69
|
|
|
70
70
|
/** @type {<T>(cmp: Cmp<T>) => (a: SortedList<T>) => (b: SortedList<T>) => SortedList<T>} */
|
|
71
|
-
const merge = cmp => {
|
|
71
|
+
export const merge = cmp => {
|
|
72
72
|
/** @typedef {typeof cmp extends Cmp<infer T> ? T : never} T*/
|
|
73
73
|
/** @type {TailReduce<T, null>} */
|
|
74
74
|
const tailReduce = mergeTail
|
|
@@ -81,11 +81,11 @@ const cmpReduce = cmp => () => a => b => {
|
|
|
81
81
|
return [sign === 1 ? b : a, sign, null]
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
/** @type {() => <T>(tail:
|
|
84
|
+
/** @type {() => <T>(tail: list.List<T>) => list.List<T>} */
|
|
85
85
|
const mergeTail = () => identity
|
|
86
86
|
|
|
87
87
|
/** @type {<T>(cmp: Cmp<T>) => (value: T) => (array: SortedArray<T>) => T|null} */
|
|
88
|
-
const find = cmp => value => array => {
|
|
88
|
+
export const find = cmp => value => array => {
|
|
89
89
|
let b = 0
|
|
90
90
|
let e = array.length - 1
|
|
91
91
|
while (true) {
|
|
@@ -105,12 +105,3 @@ const find = cmp => value => array => {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
|
|
109
|
-
export default {
|
|
110
|
-
/** @readonly */
|
|
111
|
-
merge,
|
|
112
|
-
/** @readonly */
|
|
113
|
-
genericMerge,
|
|
114
|
-
/** @readonly */
|
|
115
|
-
find
|
|
116
|
-
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import _ from './module.f.mjs'
|
|
2
|
-
import compare from '../function/compare/module.f.mjs'
|
|
1
|
+
import * as _ from './module.f.mjs'
|
|
2
|
+
import * as compare from '../function/compare/module.f.mjs'
|
|
3
3
|
const { unsafeCmp } = compare
|
|
4
|
-
import
|
|
5
|
-
import object from '../object/module.f.mjs'
|
|
4
|
+
import * as json from '../../json/module.f.mjs'
|
|
5
|
+
import * as object from '../object/module.f.mjs'
|
|
6
6
|
const { sort } = object
|
|
7
|
-
import list from '../list/module.f.mjs'
|
|
7
|
+
import * as list from '../list/module.f.mjs'
|
|
8
8
|
const { toArray, countdown, length } = list
|
|
9
9
|
import * as Map from '../map/module.f.mjs'
|
|
10
|
-
import f from '../function/module.f.mjs'
|
|
10
|
+
import * as f from '../function/module.f.mjs'
|
|
11
11
|
const { flip } = f
|
|
12
12
|
|
|
13
|
-
/** @type {(a: readonly
|
|
13
|
+
/** @type {(a: readonly json.Unknown[]) => string} */
|
|
14
14
|
const stringify = json.stringify(sort)
|
|
15
15
|
|
|
16
16
|
/** @type {<T>(a: T) => (b: T) => Map.Sign} */
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
declare namespace _default {
|
|
2
|
-
export { union };
|
|
3
|
-
export { intersect };
|
|
4
|
-
export { has };
|
|
5
|
-
}
|
|
6
|
-
export default _default;
|
|
7
|
-
export type SortedSet<T> = readonly T[];
|
|
8
|
-
export type Cmp<T> = (a: T) => (b: T) => Compare.Sign;
|
|
9
|
-
export type Byte = number;
|
|
10
1
|
/**
|
|
11
2
|
* @template T
|
|
12
3
|
* @typedef {readonly T[]} SortedSet
|
|
@@ -17,9 +8,12 @@ export type Byte = number;
|
|
|
17
8
|
*/
|
|
18
9
|
/** @typedef {number} Byte */
|
|
19
10
|
/** @type {<T>(cmp: Cmp<T>) => (a: SortedSet<T>) => (b: SortedSet<T>) => SortedSet<T>} */
|
|
20
|
-
|
|
11
|
+
export const union: <T>(cmp: Cmp<T>) => (a: SortedSet<T>) => (b: SortedSet<T>) => SortedSet<T>;
|
|
21
12
|
/** @type {<T>(cmp: Cmp<T>) => (a: SortedSet<T>) => (b: SortedSet<T>) => SortedSet<T>} */
|
|
22
|
-
|
|
13
|
+
export const intersect: <T>(cmp: Cmp<T>) => (a: SortedSet<T>) => (b: SortedSet<T>) => SortedSet<T>;
|
|
23
14
|
/** @type {<T>(cmp: Cmp<T>) => (value: T) => (set: SortedSet<T>) => boolean} */
|
|
24
|
-
|
|
15
|
+
export const has: <T>(cmp: Cmp<T>) => (value: T) => (set: SortedSet<T>) => boolean;
|
|
16
|
+
export type SortedSet<T> = readonly T[];
|
|
17
|
+
export type Cmp<T> = (a: T) => (b: T) => Compare.Sign;
|
|
18
|
+
export type Byte = number;
|
|
25
19
|
import * as Compare from '../function/compare/module.f.mjs';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @ts-self-types="./module.f.d.mts"
|
|
2
2
|
import * as Compare from '../function/compare/module.f.mjs'
|
|
3
|
-
import list from "../list/module.f.mjs"
|
|
3
|
+
import * as list from "../list/module.f.mjs"
|
|
4
4
|
const { toArray } = list
|
|
5
|
-
import
|
|
5
|
+
import * as sortedList from '../sorted_list/module.f.mjs'
|
|
6
6
|
const { merge, genericMerge, find } = sortedList
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -18,30 +18,21 @@ const { merge, genericMerge, find } = sortedList
|
|
|
18
18
|
/** @typedef {number} Byte */
|
|
19
19
|
|
|
20
20
|
/** @type {<T>(cmp: Cmp<T>) => (a: SortedSet<T>) => (b: SortedSet<T>) => SortedSet<T>} */
|
|
21
|
-
const union = cmp => a => b => toArray(merge(cmp)(a)(b))
|
|
21
|
+
export const union = cmp => a => b => toArray(merge(cmp)(a)(b))
|
|
22
22
|
|
|
23
23
|
/** @type {<T>(cmp: Cmp<T>) => (a: SortedSet<T>) => (b: SortedSet<T>) => SortedSet<T>} */
|
|
24
|
-
const intersect = cmp => a => b => toArray(intersectMerge(cmp)(a)(b))
|
|
24
|
+
export const intersect = cmp => a => b => toArray(intersectMerge(cmp)(a)(b))
|
|
25
25
|
|
|
26
26
|
const tailReduce = () => () => null
|
|
27
27
|
|
|
28
|
-
/** @type {<T>(cmp: Cmp<T>) => (a:
|
|
28
|
+
/** @type {<T>(cmp: Cmp<T>) => (a: sortedList.SortedList<T>) => (b: sortedList.SortedList<T>) => sortedList.SortedList<T>} */
|
|
29
29
|
const intersectMerge = cmp => genericMerge({ reduceOp: intersectReduce(cmp), tailReduce })(null)
|
|
30
30
|
|
|
31
|
-
/** @type {<T,S>(cmp: Cmp<T>) =>
|
|
31
|
+
/** @type {<T,S>(cmp: Cmp<T>) => sortedList.ReduceOp<T,S>} */
|
|
32
32
|
const intersectReduce = cmp => state => a => b => {
|
|
33
33
|
const sign = cmp(a)(b)
|
|
34
34
|
return [sign === 0 ? a : null, sign, state]
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
/** @type {<T>(cmp: Cmp<T>) => (value: T) => (set: SortedSet<T>) => boolean} */
|
|
38
|
-
const has = cmp => value => set => find(cmp)(value)(set) === value
|
|
39
|
-
|
|
40
|
-
export default {
|
|
41
|
-
/** @readonly */
|
|
42
|
-
union,
|
|
43
|
-
/** @readonly */
|
|
44
|
-
intersect,
|
|
45
|
-
/** @readonly */
|
|
46
|
-
has
|
|
47
|
-
}
|
|
38
|
+
export const has = cmp => value => set => find(cmp)(value)(set) === value
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import _ from './module.f.mjs'
|
|
2
|
-
import compare from '../function/compare/module.f.mjs'
|
|
1
|
+
import * as _ from './module.f.mjs'
|
|
2
|
+
import * as compare from '../function/compare/module.f.mjs'
|
|
3
3
|
const { unsafeCmp } = compare
|
|
4
|
-
import
|
|
5
|
-
import object from '../object/module.f.mjs'
|
|
4
|
+
import * as json from '../../json/module.f.mjs'
|
|
5
|
+
import * as object from '../object/module.f.mjs'
|
|
6
6
|
const { sort } = object
|
|
7
|
-
import list from '../list/module.f.mjs'
|
|
7
|
+
import * as list from '../list/module.f.mjs'
|
|
8
8
|
const { toArray, countdown, length } = list
|
|
9
9
|
import * as Map from '../map/module.f.mjs'
|
|
10
|
-
import f from '../function/module.f.mjs'
|
|
10
|
+
import * as f from '../function/module.f.mjs'
|
|
11
11
|
const { flip } = f
|
|
12
12
|
|
|
13
|
-
/** @type {(a: readonly
|
|
13
|
+
/** @type {(a: readonly json.Unknown[]) => string} */
|
|
14
14
|
const stringify = a => json.stringify(sort)(a)
|
|
15
15
|
|
|
16
16
|
/** @type {<T>(a: T) => (b: T) => Map.Sign} */
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export { concat };
|
|
4
|
-
export { repeat };
|
|
5
|
-
export { cmp };
|
|
6
|
-
}
|
|
7
|
-
export default _default;
|
|
8
|
-
declare const join: import("../function/module.f.mjs").Func<string, (input: List.List<string>) => string>;
|
|
9
|
-
declare const concat: (input: List.List<string>) => string;
|
|
1
|
+
export const join: f.Func<string, (input: list.List<string>) => string>;
|
|
2
|
+
export const concat: (input: list.List<string>) => string;
|
|
10
3
|
/** @type {(n: string) => (v: number) => string} */
|
|
11
|
-
|
|
12
|
-
/** @type {(a: string) => (b: string) =>
|
|
13
|
-
|
|
14
|
-
import * as
|
|
15
|
-
import * as
|
|
4
|
+
export const repeat: (n: string) => (v: number) => string;
|
|
5
|
+
/** @type {(a: string) => (b: string) => compare.Sign} */
|
|
6
|
+
export const cmp: (a: string) => (b: string) => compare.Sign;
|
|
7
|
+
import * as list from '../list/module.f.mjs';
|
|
8
|
+
import * as f from '../function/module.f.mjs';
|
|
9
|
+
import * as compare from '../function/compare/module.f.mjs';
|
|
@@ -1,33 +1,22 @@
|
|
|
1
1
|
// @ts-self-types="./module.f.d.mts"
|
|
2
|
-
import
|
|
2
|
+
import * as list from '../list/module.f.mjs'
|
|
3
3
|
const { reduce: listReduce, repeat: listRepeat } = list
|
|
4
|
-
import f from '../function/module.f.mjs'
|
|
4
|
+
import * as f from '../function/module.f.mjs'
|
|
5
5
|
const { compose } = f
|
|
6
|
-
import
|
|
6
|
+
import * as compare from '../function/compare/module.f.mjs'
|
|
7
7
|
const { unsafeCmp } = compare
|
|
8
|
-
import
|
|
8
|
+
import * as op from '../function/operator/module.f.mjs'
|
|
9
9
|
const { join: joinOp, concat: concatOp } = op
|
|
10
10
|
|
|
11
|
-
/** @type {(o:
|
|
11
|
+
/** @type {(o: op.Reduce<string>) => (input: list.List<string>) => string} */
|
|
12
12
|
const reduce = o => listReduce(o)('')
|
|
13
13
|
|
|
14
|
-
const join = compose(joinOp)(reduce)
|
|
14
|
+
export const join = compose(joinOp)(reduce)
|
|
15
15
|
|
|
16
|
-
const concat = reduce(concatOp)
|
|
16
|
+
export const concat = reduce(concatOp)
|
|
17
17
|
|
|
18
18
|
/** @type {(n: string) => (v: number) => string} */
|
|
19
|
-
const repeat = v => compose(listRepeat(v))(concat)
|
|
19
|
+
export const repeat = v => compose(listRepeat(v))(concat)
|
|
20
20
|
|
|
21
|
-
/** @type {(a: string) => (b: string) =>
|
|
22
|
-
const cmp = unsafeCmp
|
|
23
|
-
|
|
24
|
-
export default {
|
|
25
|
-
/** @readonly */
|
|
26
|
-
join,
|
|
27
|
-
/** @readonly */
|
|
28
|
-
concat,
|
|
29
|
-
/** @readonly */
|
|
30
|
-
repeat,
|
|
31
|
-
/** @readonly */
|
|
32
|
-
cmp,
|
|
33
|
-
}
|
|
21
|
+
/** @type {(a: string) => (b: string) => compare.Sign} */
|
|
22
|
+
export const cmp = unsafeCmp
|
package/types/string/test.f.mjs
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export { contains };
|
|
4
|
-
export { set };
|
|
5
|
-
export { values };
|
|
6
|
-
export { fromValues };
|
|
7
|
-
export { remove };
|
|
8
|
-
}
|
|
9
|
-
export default _default;
|
|
10
|
-
export type StringSet = BtreeTypes.Tree<string>;
|
|
11
|
-
declare const empty: null;
|
|
1
|
+
export const values: <T>(tree: BtreeTypes.Tree<T>) => list.List<T>;
|
|
2
|
+
export const empty: null;
|
|
12
3
|
/** @typedef {BtreeTypes.Tree<string>} StringSet */
|
|
13
4
|
/** @type {(value: string) => (set: StringSet) => boolean} */
|
|
14
|
-
|
|
5
|
+
export const contains: (value: string) => (set: StringSet) => boolean;
|
|
15
6
|
/** @type {(value: string) => (s: StringSet) => StringSet} */
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
declare const fromValues: (input: import("../list/module.f.mjs").List<string>) => StringSet;
|
|
7
|
+
export const set: (value: string) => (s: StringSet) => StringSet;
|
|
8
|
+
export const fromValues: (input: list.List<string>) => StringSet;
|
|
19
9
|
/** @type {(value: string) => (s: StringSet) => StringSet} */
|
|
20
|
-
|
|
10
|
+
export const remove: (value: string) => (s: StringSet) => StringSet;
|
|
11
|
+
export type StringSet = BtreeTypes.Tree<string>;
|
|
21
12
|
import * as BtreeTypes from '../btree/types/module.f.mjs';
|
|
13
|
+
import * as list from '../list/module.f.mjs';
|
|
@@ -1,51 +1,36 @@
|
|
|
1
1
|
// @ts-self-types="./module.f.d.mts"
|
|
2
2
|
import * as BtreeTypes from '../btree/types/module.f.mjs'
|
|
3
|
-
import btree from '../btree/module.f.mjs'
|
|
4
|
-
import btf from '../btree/find/module.f.mjs'
|
|
3
|
+
import * as btree from '../btree/module.f.mjs'
|
|
4
|
+
import * as btf from '../btree/find/module.f.mjs'
|
|
5
5
|
const { find, isFound } = btf
|
|
6
|
-
import btr from '../btree/remove/module.f.mjs'
|
|
6
|
+
import * as btr from '../btree/remove/module.f.mjs'
|
|
7
7
|
const { remove: btreeRemove } = btr
|
|
8
|
-
import bts from '../btree/set/module.f.mjs'
|
|
8
|
+
import * as bts from '../btree/set/module.f.mjs'
|
|
9
9
|
const { set: btreeSet } = bts
|
|
10
|
-
const {
|
|
10
|
+
export const {
|
|
11
11
|
/** @type {(s: StringSet) => list.List<string>} */
|
|
12
12
|
values,
|
|
13
13
|
empty,
|
|
14
14
|
} = btree
|
|
15
|
-
import string from "../string/module.f.mjs"
|
|
15
|
+
import * as string from "../string/module.f.mjs"
|
|
16
16
|
const { cmp } = string
|
|
17
|
-
import list from '../list/module.f.mjs'
|
|
17
|
+
import * as list from '../list/module.f.mjs'
|
|
18
18
|
const { fold } = list
|
|
19
|
-
import f from '../function/module.f.mjs'
|
|
19
|
+
import * as f from '../function/module.f.mjs'
|
|
20
20
|
const { compose } = f
|
|
21
21
|
|
|
22
22
|
/** @typedef {BtreeTypes.Tree<string>} StringSet */
|
|
23
23
|
|
|
24
24
|
/** @type {(value: string) => (set: StringSet) => boolean} */
|
|
25
|
-
const contains = value => {
|
|
25
|
+
export const contains = value => {
|
|
26
26
|
const f = find(cmp(value))
|
|
27
27
|
return s => s !== null && isFound(f(s).first)
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
/** @type {(value: string) => (s: StringSet) => StringSet} */
|
|
31
|
-
const set = value => btreeSet(cmp(value))(() => value)
|
|
31
|
+
export const set = value => btreeSet(cmp(value))(() => value)
|
|
32
32
|
|
|
33
|
-
const fromValues = fold(set)(null)
|
|
33
|
+
export const fromValues = fold(set)(null)
|
|
34
34
|
|
|
35
35
|
/** @type {(value: string) => (s: StringSet) => StringSet} */
|
|
36
|
-
const remove = compose(cmp)(btreeRemove)
|
|
37
|
-
|
|
38
|
-
export default {
|
|
39
|
-
/** @readonly */
|
|
40
|
-
empty,
|
|
41
|
-
/** @readonly */
|
|
42
|
-
contains,
|
|
43
|
-
/** @readonly */
|
|
44
|
-
set,
|
|
45
|
-
/** @readonly */
|
|
46
|
-
values,
|
|
47
|
-
/** @readonly */
|
|
48
|
-
fromValues,
|
|
49
|
-
/** @readonly */
|
|
50
|
-
remove,
|
|
51
|
-
}
|
|
36
|
+
export const remove = compose(cmp)(btreeRemove)
|