forked from rescript-lang/rescript
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbelt_Option.js
123 lines (107 loc) · 1.84 KB
/
belt_Option.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
'use strict';
var Curry = require("./curry.js");
function getExn(param) {
if (param) {
return param[0];
} else {
throw new Error("getExn");
}
}
function foldU(opt, $$default, f) {
if (opt) {
return f(opt[0]);
} else {
return $$default;
}
}
function fold(opt, $$default, f) {
return foldU(opt, $$default, Curry.__1(f));
}
function mapU(opt, f) {
if (opt) {
return /* Some */[f(opt[0])];
} else {
return /* None */0;
}
}
function map(opt, f) {
return mapU(opt, Curry.__1(f));
}
function flatMapU(opt, f) {
if (opt) {
return f(opt[0]);
} else {
return /* None */0;
}
}
function flatMap(opt, f) {
return flatMapU(opt, Curry.__1(f));
}
function getWithDefault(opt, $$default) {
if (opt) {
return opt[0];
} else {
return $$default;
}
}
function isSome(param) {
if (param) {
return /* true */1;
} else {
return /* false */0;
}
}
function isNone(param) {
if (param) {
return /* false */0;
} else {
return /* true */1;
}
}
function eqU(a, b, f) {
if (a) {
if (b) {
return f(a[0], b[0]);
} else {
return /* false */0;
}
} else if (b) {
return /* false */0;
} else {
return /* true */1;
}
}
function eq(a, b, f) {
return eqU(a, b, Curry.__2(f));
}
function cmpU(a, b, f) {
if (a) {
if (b) {
return f(a[0], b[0]);
} else {
return 1;
}
} else if (b) {
return -1;
} else {
return 0;
}
}
function cmp(a, b, f) {
return cmpU(a, b, Curry.__2(f));
}
exports.getExn = getExn;
exports.foldU = foldU;
exports.fold = fold;
exports.mapU = mapU;
exports.map = map;
exports.flatMapU = flatMapU;
exports.flatMap = flatMap;
exports.getWithDefault = getWithDefault;
exports.isSome = isSome;
exports.isNone = isNone;
exports.eqU = eqU;
exports.eq = eq;
exports.cmpU = cmpU;
exports.cmp = cmp;
/* No side effect */