UNPKG

functionalscript

Version:

FunctionalScript is a purely functional subset of JavaScript

20 lines (19 loc) 1.1 kB
export type Binary<A, B, R> = (a: A) => (b: B) => R; export type Fold<I, O> = Binary<I, O, O>; export declare const join: (separator: string) => Reduce<string>; export declare const concat: Reduce<string>; export type Unary<T, R> = (value: T) => R; export declare const logicalNot: Unary<boolean, boolean>; export type Equal<T> = Binary<T, T, boolean>; export declare const strictEqual: <T>(a: T) => (b: T) => boolean; export type Scan<I, O> = (input: I) => readonly [O, Scan<I, O>]; export type StateScan<I, S, O> = (prior: S) => (input: I) => readonly [O, S]; export declare const stateScanToScan: <I, S, O>(op: StateScan<I, S, O>) => (prior: S) => Scan<I, O>; export declare const foldToScan: <I, O>(fold: Fold<I, O>) => (prior: O) => Scan<I, O>; export type Reduce<T> = Fold<T, T>; export declare const reduceToScan: <T>(op: Reduce<T>) => Scan<T, T>; export declare const addition: Reduce<number>; export declare const min: Reduce<number>; export declare const max: Reduce<number>; export declare const increment: (b: number) => number; export declare const counter: () => (b: number) => number;