functionalscript
Version:
FunctionalScript is a purely functional subset of JavaScript
21 lines (20 loc) • 873 B
JavaScript
import { flat, reduce, empty } from "../../types/list/module.f.js";
import {} from "../../types/object/module.f.js";
import {} from "../../types/function/operator/module.f.js";
const jsonStringify = JSON.stringify;
export const stringSerialize = input => [jsonStringify(input)];
export const numberSerialize = input => [jsonStringify(input)];
export const nullSerialize = ['null'];
const trueSerialize = ['true'];
const falseSerialize = ['false'];
export const boolSerialize = value => value ? trueSerialize : falseSerialize;
const comma = [','];
const joinOp = b => prior => flat([prior, comma, b]);
const join = reduce(joinOp)(empty);
const wrap = open => close => {
const seqOpen = [open];
const seqClose = [close];
return input => flat([seqOpen, join(input), seqClose]);
};
export const objectWrap = wrap('{')('}');
export const arrayWrap = wrap('[')(']');