UNPKG

functionalscript

Version:

FunctionalScript is a purely functional subset of JavaScript

19 lines (18 loc) 771 B
export const join = (separator) => value => prior => `${prior}${separator}${value}`; export const concat = i => acc => `${acc}${i}`; export const logicalNot = v => !v; export const strictEqual = (a) => (b) => a === b; export const stateScanToScan = (op) => (prior) => i => { const [o, s] = op(prior)(i); return [o, stateScanToScan(op)(s)]; }; export const foldToScan = (fold) => (prior) => i => { const result = fold(i)(prior); return [result, foldToScan(fold)(result)]; }; export const reduceToScan = (op) => init => [init, foldToScan(op)(init)]; export const addition = a => b => a + b; export const min = a => b => a < b ? a : b; export const max = a => b => a > b ? a : b; export const increment = addition(1); export const counter = () => increment;