22 lines
482 B
Plaintext
22 lines
482 B
Plaintext
|
type storage = int;
|
||
|
|
||
|
/* variant defining pseudo multi-entrypoint actions */
|
||
|
|
||
|
type action =
|
||
|
| Increment(int)
|
||
|
| Decrement(int);
|
||
|
|
||
|
let add = (a: int, b: int): int => a + b;
|
||
|
let sub = (a: int, b: int): int => a - b;
|
||
|
|
||
|
/* real entrypoint that re-routes the flow based on the action provided */
|
||
|
|
||
|
let main = (p: action, storage) => {
|
||
|
let storage =
|
||
|
switch (p) {
|
||
|
| Increment(n) => add(storage, n)
|
||
|
| Decrement(n) => sub(storage, n)
|
||
|
};
|
||
|
([]: list(operation), storage);
|
||
|
};
|