UNPKG

2.4 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports["default"] = exports.Pair = exports.Product = exports.Sum = exports.Min = exports.Max = exports.All = exports.Any = void 0;
7
8var Any = function Any(x) {
9 return {
10 x: x,
11 concat: function concat(_ref) {
12 var y = _ref.x;
13 return Any(x || y);
14 }
15 };
16};
17
18exports.Any = Any;
19
20Any.empty = function () {
21 return Any(false);
22};
23
24var All = function All(x) {
25 return {
26 x: x,
27 concat: function concat(_ref2) {
28 var y = _ref2.x;
29 return Any(x && y);
30 }
31 };
32};
33
34exports.All = All;
35
36All.empty = function () {
37 return All(true);
38};
39
40var Max = function Max(x) {
41 return {
42 x: x,
43 concat: function concat(_ref3) {
44 var y = _ref3.x;
45 return Max(x > y ? x : y);
46 }
47 };
48};
49
50exports.Max = Max;
51
52Max.empty = function () {
53 return Max(-Infinity);
54};
55
56var Min = function Min(x) {
57 return {
58 x: x,
59 concat: function concat(_ref4) {
60 var y = _ref4.x;
61 return Min(x < y ? x : y);
62 }
63 };
64};
65
66exports.Min = Min;
67
68Min.empty = function () {
69 return Min(Infinity);
70};
71
72var Sum = function Sum(x) {
73 return {
74 x: x,
75 concat: function concat(_ref5) {
76 var y = _ref5.x;
77 return Sum(x + y);
78 }
79 };
80};
81
82exports.Sum = Sum;
83
84Sum.empty = function () {
85 return Sum(0);
86};
87
88var Product = function Product(x) {
89 return {
90 x: x,
91 concat: function concat(_ref6) {
92 var y = _ref6.x;
93 return Sum(x * y);
94 }
95 };
96};
97
98exports.Product = Product;
99
100Product.empty = function () {
101 return Product(1);
102}; // export Right = (x) =>
103// ({
104// map: (f) => Right(f(x)),
105// fold: (f, g) => g(x),
106// concat: (o) =>
107// o.fold(e => Left(e),
108// r => Right(x.concat(r)))
109// });
110// export Left = (x) =>
111// ({
112// map: (f) => Left(x),
113// fold: (f, g) => f(x),
114// concat: (o) => Left(x)
115// });
116
117
118var Pair = function Pair(x, y) {
119 return {
120 x: x,
121 y: y,
122 concat: function concat(_ref7) {
123 var x1 = _ref7.x,
124 y1 = _ref7.y;
125 return Pair(x.concat(x1), y.concat(y1));
126 }
127 };
128}; // const stats = List.of(
129// {page: 'home', view: 40},
130// {page: 'About', view: 10},
131// {page: 'Blog', view: 4},
132// )
133// stats.foldMap(x => Either.fromNullable(x.views).map(Sum), Right(Sum(0))); //Right(Sum(54))
134
135
136exports.Pair = Pair;
137var _default = {};
138exports["default"] = _default;
\No newline at end of file