pareto-core 0.1.95 → 0.1.99

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.
@@ -1,33 +1,29 @@
1
1
  import * as _pi from "../../../../interface";
2
- export declare namespace integer {
3
- /**
4
- * Performs integer division of two numbers (rounding towards negative infinity).
5
- *
6
- * dividend / divisor
7
- *
8
- * examples:
9
- * integer_division(7, 3) === 2
10
- * integer_division(7, -3) === -3
11
- * integer_division(-7, 3) === -3
12
- * integer_division(-7, -3) === 2
13
- */
14
- const divide: (dividend: number, divisor: number, abort: {
15
- divided_by_zero: _pi.Abort<null>;
16
- }) => number;
17
- namespace from {
18
- const list: <T>(list: _pi.List<T>) => {
19
- sum: (assign_value: (item: T) => number) => number;
20
- };
21
- }
22
- }
23
- export declare namespace natural {
24
- namespace from {
25
- const dictionary: <T>(dictionary: _pi.Dictionary<T>) => {
26
- amount_of_entries: () => number;
27
- };
28
- const list: <T>(list: _pi.List<T>) => {
29
- amount_of_items: () => number;
30
- reduce: (initial_state: number, update_state: (value: T, current: number) => number) => number;
31
- };
2
+ export declare namespace from {
3
+ namespace number {
4
+ /**
5
+ * Performs integer division of two numbers with configurable rounding behavior.
6
+ *
7
+ * dividend / divisor
8
+ *
9
+ * Rounding modes:
10
+ * - 'towards negative infinity': floor (7.8 → 7, -7.8 -8)
11
+ * - 'towards positive infinity': ceiling (7.2 → 8, -7.8 -7)
12
+ * - 'towards zero': truncate (7.8 → 7, -7.8 -7)
13
+ * - 'towards nearest': round to nearest integer (7.5 → 8, 7.4 → 7)
14
+ * - 'away from zero': round away from zero (7.2 → 8, -7.2 -8)
15
+ */
16
+ const divide: ($: number, divisor: number, round: ["towards negative infinity", null] | ["towards positive infinity", null] | ["towards nearest", null] | ["towards zero", null] | ["away from zero", null], abort: {
17
+ divided_by_zero: _pi.Abort<null>;
18
+ }) => number;
32
19
  }
20
+ const list: <T>(list: _pi.List<T>) => {
21
+ amount_of_items: () => number;
22
+ reduce: (initial_state: number, update_state: (value: T, current: number) => number) => number;
23
+ sum: (assign_value: (item: T) => number) => number;
24
+ };
25
+ const dictionary: <T>(dictionary: _pi.Dictionary<T>) => {
26
+ amount_of_entries: () => number;
27
+ sum: (assign_value: (item: T) => number) => number;
28
+ };
33
29
  }
@@ -1,74 +1,88 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.natural = exports.integer = void 0;
4
- var integer;
5
- (function (integer) {
6
- /**
7
- * Performs integer division of two numbers (rounding towards negative infinity).
8
- *
9
- * dividend / divisor
10
- *
11
- * examples:
12
- * integer_division(7, 3) === 2
13
- * integer_division(7, -3) === -3
14
- * integer_division(-7, 3) === -3
15
- * integer_division(-7, -3) === 2
16
- */
17
- integer.divide = (dividend, divisor, abort) => {
18
- if (divisor === 0) {
19
- abort.divided_by_zero(null);
20
- }
21
- const quotient = dividend / divisor;
22
- // when dividend and divisor have different signs, the quotient is negative
23
- // For positive quotients, use Math.floor to round down
24
- // this behavior matches the integer division in Python, Java, and C99 and later
25
- if (quotient >= 0) {
26
- return Math.floor(quotient);
27
- }
28
- else {
29
- return Math.ceil(quotient);
30
- }
31
- };
32
- let from;
33
- (function (from) {
34
- from.list = (list) => {
35
- return {
36
- sum: (assign_value) => {
37
- let sum = 0;
38
- list.__get_raw_copy().forEach(($) => {
39
- sum += assign_value($);
40
- });
41
- return sum;
42
- },
43
- };
3
+ exports.from = void 0;
4
+ var from;
5
+ (function (from) {
6
+ let number;
7
+ (function (number) {
8
+ /**
9
+ * Performs integer division of two numbers with configurable rounding behavior.
10
+ *
11
+ * dividend / divisor
12
+ *
13
+ * Rounding modes:
14
+ * - 'towards negative infinity': floor (7.8 → 7, -7.8 -8)
15
+ * - 'towards positive infinity': ceiling (7.2 → 8, -7.8 -7)
16
+ * - 'towards zero': truncate (7.8 → 7, -7.8 → -7)
17
+ * - 'towards nearest': round to nearest integer (7.5 8, 7.4 → 7)
18
+ * - 'away from zero': round away from zero (7.2 8, -7.2 → -8)
19
+ */
20
+ number.divide = ($, divisor, round, abort) => {
21
+ if (divisor === 0) {
22
+ abort.divided_by_zero(null);
23
+ }
24
+ const quotient = $ / divisor;
25
+ switch (round[0]) {
26
+ case 'towards negative infinity':
27
+ // Always round down (floor)
28
+ return Math.floor(quotient);
29
+ case 'towards positive infinity':
30
+ // Always round up (ceiling)
31
+ return Math.ceil(quotient);
32
+ case 'towards zero':
33
+ // Truncate decimal part (round towards zero)
34
+ return Math.trunc(quotient);
35
+ case 'towards nearest':
36
+ // Round to nearest integer (0.5 rounds away from zero)
37
+ return Math.round(quotient);
38
+ case 'away from zero':
39
+ // Round away from zero
40
+ if (quotient >= 0) {
41
+ return Math.ceil(quotient);
42
+ }
43
+ else {
44
+ return Math.floor(quotient);
45
+ }
46
+ default:
47
+ const _exhaustiveCheck = round;
48
+ throw new Error(`Unexpected rounding mode: ${round}`);
49
+ }
44
50
  };
45
- })(from = integer.from || (integer.from = {}));
46
- })(integer || (exports.integer = integer = {}));
47
- var natural;
48
- (function (natural) {
49
- let from;
50
- (function (from) {
51
- from.dictionary = (dictionary) => {
52
- return {
53
- amount_of_entries: () => {
54
- return dictionary.__get_number_of_entries();
55
- }
56
- };
51
+ })(number = from.number || (from.number = {}));
52
+ from.list = (list) => {
53
+ return {
54
+ amount_of_items: () => {
55
+ return list.__get_number_of_items();
56
+ },
57
+ reduce: (initial_state, update_state) => {
58
+ let current_state = initial_state;
59
+ list.__get_raw_copy().forEach(($) => {
60
+ current_state = update_state($, current_state);
61
+ });
62
+ return current_state;
63
+ },
64
+ sum: (assign_value) => {
65
+ let sum = 0;
66
+ list.__get_raw_copy().forEach(($) => {
67
+ sum += assign_value($);
68
+ });
69
+ return sum;
70
+ },
57
71
  };
58
- from.list = (list) => {
59
- return {
60
- amount_of_items: () => {
61
- return list.__get_number_of_items();
62
- },
63
- reduce: (initial_state, update_state) => {
64
- let current_state = initial_state;
65
- list.__get_raw_copy().forEach(($) => {
66
- current_state = update_state($, current_state);
67
- });
68
- return current_state;
69
- }
70
- };
72
+ };
73
+ from.dictionary = (dictionary) => {
74
+ return {
75
+ amount_of_entries: () => {
76
+ return dictionary.__get_number_of_entries();
77
+ },
78
+ sum: (assign_value) => {
79
+ let sum = 0;
80
+ dictionary.__get_raw_copy().forEach(($) => {
81
+ sum += assign_value($[1]);
82
+ });
83
+ return sum;
84
+ },
71
85
  };
72
- })(from = natural.from || (natural.from = {}));
73
- })(natural || (exports.natural = natural = {}));
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL19faW50ZXJuYWxzL3N5bmMvYXNzaWduL2NvbnN0cnVjdC9udW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsSUFBaUIsT0FBTyxDQTREdkI7QUE1REQsV0FBaUIsT0FBTztJQUVwQjs7Ozs7Ozs7OztPQVVHO0lBQ1UsY0FBTSxHQUFHLENBQ2xCLFFBQWdCLEVBQ2hCLE9BQWUsRUFDZixLQUVDLEVBQ0ssRUFBRTtRQUNSLElBQUksT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hCLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDL0IsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUE7UUFDbkMsMkVBQTJFO1FBQzNFLHVEQUF1RDtRQUV2RCxnRkFBZ0Y7UUFFaEYsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzlCLENBQUM7SUFDTCxDQUFDLENBQUE7SUFDRCxJQUFpQixJQUFJLENBd0JwQjtJQXhCRCxXQUFpQixJQUFJO1FBR0osU0FBSSxHQUFHLENBQ2hCLElBQWlCLEVBQ25CLEVBQUU7WUFDQSxPQUFPO2dCQUVILEdBQUcsRUFBRSxDQUNELFlBRVcsRUFDTCxFQUFFO29CQUNSLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQTtvQkFDWCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ2hDLEdBQUcsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQzFCLENBQUMsQ0FBQyxDQUFBO29CQUNGLE9BQU8sR0FBRyxDQUFBO2dCQUNkLENBQUM7YUFFSixDQUFBO1FBQ0wsQ0FBQyxDQUFBO0lBR0wsQ0FBQyxFQXhCZ0IsSUFBSSxHQUFKLFlBQUksS0FBSixZQUFJLFFBd0JwQjtBQUNMLENBQUMsRUE1RGdCLE9BQU8sdUJBQVAsT0FBTyxRQTREdkI7QUFFRCxJQUFpQixPQUFPLENBOEN2QjtBQTlDRCxXQUFpQixPQUFPO0lBRXBCLElBQWlCLElBQUksQ0EwQ3BCO0lBMUNELFdBQWlCLElBQUk7UUFFSixlQUFVLEdBQUcsQ0FDdEIsVUFBNkIsRUFDL0IsRUFBRTtZQUNBLE9BQU87Z0JBRUgsaUJBQWlCLEVBQUUsR0FDVCxFQUFFO29CQUNSLE9BQU8sVUFBVSxDQUFDLHVCQUF1QixFQUFFLENBQUE7Z0JBQy9DLENBQUM7YUFFSixDQUFBO1FBQ0wsQ0FBQyxDQUFBO1FBRVksU0FBSSxHQUFHLENBQ2hCLElBQWlCLEVBQ25CLEVBQUU7WUFDQSxPQUFPO2dCQUVILGVBQWUsRUFBRSxHQUNQLEVBQUU7b0JBQ1IsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtnQkFDdkMsQ0FBQztnQkFFRCxNQUFNLEVBQUUsQ0FDSixhQUFxQixFQUNyQixZQUdXLEVBQ0wsRUFBRTtvQkFDUixJQUFJLGFBQWEsR0FBRyxhQUFhLENBQUE7b0JBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDaEMsYUFBYSxHQUFHLFlBQVksQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUE7b0JBQ2xELENBQUMsQ0FBQyxDQUFBO29CQUNGLE9BQU8sYUFBYSxDQUFBO2dCQUN4QixDQUFDO2FBRUosQ0FBQTtRQUNMLENBQUMsQ0FBQTtJQUVMLENBQUMsRUExQ2dCLElBQUksR0FBSixZQUFJLEtBQUosWUFBSSxRQTBDcEI7QUFFTCxDQUFDLEVBOUNnQixPQUFPLHVCQUFQLE9BQU8sUUE4Q3ZCIn0=
86
+ };
87
+ })(from || (exports.from = from = {}));
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL19faW50ZXJuYWxzL3N5bmMvYXNzaWduL2NvbnN0cnVjdC9udW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsSUFBaUIsSUFBSSxDQXFJcEI7QUFySUQsV0FBaUIsSUFBSTtJQUVqQixJQUFpQixNQUFNLENBZ0V0QjtJQWhFRCxXQUFpQixNQUFNO1FBRW5COzs7Ozs7Ozs7OztXQVdHO1FBQ1UsYUFBTSxHQUFHLENBQ2xCLENBQVMsRUFDVCxPQUFlLEVBQ2YsS0FLOEIsRUFDOUIsS0FFQyxFQUNLLEVBQUU7WUFDUixJQUFJLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDaEIsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUMvQixDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQTtZQUU1QixRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNmLEtBQUssMkJBQTJCO29CQUM1Qiw0QkFBNEI7b0JBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFFL0IsS0FBSywyQkFBMkI7b0JBQzVCLDRCQUE0QjtvQkFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUU5QixLQUFLLGNBQWM7b0JBQ2YsNkNBQTZDO29CQUM3QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7Z0JBRS9CLEtBQUssaUJBQWlCO29CQUNsQix1REFBdUQ7b0JBQ3ZELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFFL0IsS0FBSyxnQkFBZ0I7b0JBQ2pCLHVCQUF1QjtvQkFDdkIsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtvQkFDOUIsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtvQkFDL0IsQ0FBQztnQkFFTDtvQkFDSSxNQUFNLGdCQUFnQixHQUFVLEtBQUssQ0FBQTtvQkFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsS0FBSyxFQUFFLENBQUMsQ0FBQTtZQUM3RCxDQUFDO1FBQ0wsQ0FBQyxDQUFBO0lBR0wsQ0FBQyxFQWhFZ0IsTUFBTSxHQUFOLFdBQU0sS0FBTixXQUFNLFFBZ0V0QjtJQUVZLFNBQUksR0FBRyxDQUNoQixJQUFpQixFQUNuQixFQUFFO1FBQ0EsT0FBTztZQUVILGVBQWUsRUFBRSxHQUNQLEVBQUU7Z0JBQ1IsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtZQUN2QyxDQUFDO1lBRUQsTUFBTSxFQUFFLENBQ0osYUFBcUIsRUFDckIsWUFHVyxFQUNMLEVBQUU7Z0JBQ1IsSUFBSSxhQUFhLEdBQUcsYUFBYSxDQUFBO2dCQUNqQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ2hDLGFBQWEsR0FBRyxZQUFZLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFBO2dCQUNsRCxDQUFDLENBQUMsQ0FBQTtnQkFDRixPQUFPLGFBQWEsQ0FBQTtZQUN4QixDQUFDO1lBRUQsR0FBRyxFQUFFLENBQ0QsWUFFVyxFQUNMLEVBQUU7Z0JBQ1IsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFBO2dCQUNYLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDaEMsR0FBRyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDMUIsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsT0FBTyxHQUFHLENBQUE7WUFDZCxDQUFDO1NBRUosQ0FBQTtJQUNMLENBQUMsQ0FBQTtJQUVZLGVBQVUsR0FBRyxDQUN0QixVQUE2QixFQUMvQixFQUFFO1FBQ0EsT0FBTztZQUVILGlCQUFpQixFQUFFLEdBQ1QsRUFBRTtnQkFDUixPQUFPLFVBQVUsQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO1lBQy9DLENBQUM7WUFFRCxHQUFHLEVBQUUsQ0FDRCxZQUVXLEVBQ0wsRUFBRTtnQkFDUixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUE7Z0JBQ1gsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUN0QyxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUM3QixDQUFDLENBQUMsQ0FBQTtnQkFDRixPQUFPLEdBQUcsQ0FBQTtZQUNkLENBQUM7U0FFSixDQUFBO0lBQ0wsQ0FBQyxDQUFBO0FBR0wsQ0FBQyxFQXJJZ0IsSUFBSSxvQkFBSixJQUFJLFFBcUlwQiJ9
@@ -0,0 +1 @@
1
+ export default function _p_create_symbol(): symbol;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = _p_create_symbol;
4
+ function _p_create_symbol() {
5
+ return Symbol();
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX3BfY3JlYXRlX3N5bWJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9fcF9jcmVhdGVfc3ltYm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBRUM7QUFGRCxTQUF3QixnQkFBZ0I7SUFDcEMsT0FBTyxNQUFNLEVBQUUsQ0FBQTtBQUNuQixDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pareto-core",
3
- "version": "0.1.95",
3
+ "version": "0.1.99",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Corno",
6
6
  "description": "the core language constructs for the Pareto programming language (in TypeScript)",