moy-fp
Version:
A functional programming library.
210 lines (194 loc) • 8.6 kB
JavaScript
/**
* Function
*/
export { default as __ } from './Function/__'
export { default as always } from './Function/always'
export { default as applyTo } from './Function/applyTo'
export { default as ascend } from './Function/ascend'
export { default as binary } from './Function/binary'
export { default as comparator } from './Function/comparator'
export { default as compose } from './Function/compose'
export { default as converge } from './Function/converge'
export { default as descend } from './Function/descend'
export { default as empty } from './Function/empty'
export { default as flip } from './Function/flip'
export { default as invoker } from './Function/invoker'
export { default as juxt } from './Function/juxt'
export { default as nAry } from './Function/nAry'
export { default as o } from './Function/o'
export { default as tap } from './Function/tap'
export { default as unary } from './Function/unary'
// used in functions at List && String
import curry from './Function/curry'
export { curry }
/**
* Functor
*/
export { default as Identity } from './Functor/Identity/index'
export { default as IO } from './Functor/IO/index'
export { default as Maybe } from './Functor/Maybe/index'
export { default as Task } from './Functor/Task/index'
export { default as ap } from './Functor/ap'
export { default as chain } from './Functor/chain'
export { default as extract } from './Functor/extract'
export { default as fork } from './Functor/fork'
export { default as identity } from './Functor/identity'
export { default as join } from './Functor/join'
export { default as lift } from './Functor/lift'
export { default as map } from './Functor/map'
export { default as maybe } from './Functor/maybe'
export { default as of } from './Functor/of'
export { default as unsafePerformIO } from './Functor/unsafePerformIO'
/**
* List
*/
export { default as adjust } from './List/adjust'
export { default as all } from './List/all'
export { default as any } from './List/any'
export { default as aperture } from './List/aperture'
export { default as append } from './List/append'
export { default as contains } from './List/contains'
export { default as filter } from './List/filter'
export { default as find } from './List/find'
export { default as findIndex } from './List/findIndex'
export { default as foldl } from './List/foldl'
export { default as foldr } from './List/foldr'
export { default as fromPairs } from './List/fromPairs'
export { default as indexOf } from './List/indexOf'
export { default as insert } from './List/insert'
export { default as insertAll } from './List/insertAll'
export { default as intercalate } from './List/intercalate'
export { default as none } from './List/none'
export { default as pair } from './List/pair'
export { default as prepend } from './List/prepend'
export { default as range } from './List/range'
export { default as reject } from './List/reject'
export { default as remove } from './List/remove'
export { default as sort } from './List/sort'
export { default as transpose } from './List/transpose'
export { default as uniq } from './List/uniq'
export { default as update } from './List/update'
export { default as xprod } from './List/xprod'
export { default as zip } from './List/zip'
export { default as zipWith } from './List/zipWith'
// not need to export
// used in functions at List && String
import concatList from './List/concatList'
import headList from './List/headList'
import initList from './List/initList'
import lastList from './List/lastList'
import lengthList from './List/lengthList'
import nthList from './List/nthList'
import reverseList from './List/reverseList'
import sliceList from './List/sliceList'
import tailList from './List/tailList'
/**
* Logic
*/
export { default as allPass } from './Logic/allPass'
export { default as and } from './Logic/and'
export { default as anyPass } from './Logic/anyPass'
export { default as both } from './Logic/both'
export { default as complement } from './Logic/complement'
export { default as either } from './Logic/either'
export { default as not } from './Logic/not'
export { default as or } from './Logic/or'
/**
* Math
*/
export { default as add } from './Math/add'
export { default as dec } from './Math/dec'
export { default as divide } from './Math/divide'
export { default as inc } from './Math/inc'
export { default as mean } from './Math/mean'
export { default as median } from './Math/median'
export { default as mod } from './Math/mod'
export { default as multiply } from './Math/multiply'
export { default as negate } from './Math/negate'
export { default as subtract } from './Math/subtract'
/**
* Object
*/
export { default as assoc } from './Object/assoc'
export { default as assocPath } from './Object/assocPath'
export { default as dissoc } from './Object/dissoc'
export { default as dissocPath } from './Object/dissocPath'
export { default as entries } from './Object/entries'
export { default as has } from './Object/has'
export { default as keys } from './Object/keys'
export { default as lens } from './Object/lens'
export { default as lensIndex } from './Object/lensIndex'
export { default as lensPath } from './Object/lensPath'
export { default as lensProp } from './Object/lensProp'
export { default as merge } from './Object/merge'
export { default as omit } from './Object/omit'
export { default as omitBy } from './Object/omitBy'
export { default as over } from './Object/over'
export { default as path } from './Object/path'
export { default as pick } from './Object/pick'
export { default as pickBy } from './Object/pickBy'
export { default as project } from './Object/project'
export { default as prop } from './Object/prop'
export { default as set } from './Object/set'
export { default as toPairs } from './Object/toPairs'
export { default as values } from './Object/values'
export { default as view } from './Object/view'
/**
* Relation
*/
export { default as difference } from './Relation/difference'
export { default as differenceBy } from './Relation/differenceBy'
export { default as equals } from './Relation/equals'
export { default as equalsBy } from './Relation/equalsBy'
export { default as gt } from './Relation/gt'
export { default as gte } from './Relation/gte'
export { default as intersection } from './Relation/intersection'
export { default as intersectionBy } from './Relation/intersectionBy'
export { default as lt } from './Relation/lt'
export { default as lte } from './Relation/lte'
export { default as max } from './Relation/max'
export { default as maxBy } from './Relation/maxBy'
export { default as min } from './Relation/min'
export { default as minBy } from './Relation/minBy'
export { default as union } from './Relation/union'
export { default as unionBy } from './Relation/unionBy'
/**
* String
*/
export { default as match } from './String/match'
export { default as replace } from './String/replace'
export { default as split } from './String/split'
export { default as test } from './String/test'
export { default as toLower } from './String/toLower'
export { default as toString } from './String/toString'
export { default as toUpper } from './String/toUpper'
export { default as trim } from './String/trim'
// not need to export
// used in functions at List && String
import concatString from './String/concatString'
import headString from './String/headString'
import initString from './String/initString'
import lastString from './String/lastString'
import lengthString from './String/lengthString'
import nthString from './String/nthString'
import reverseString from './String/reverseString'
import sliceString from './String/sliceString'
import tailString from './String/tailString'
/**
* Type
*/
// used in functions at List && String
import is from './Type/is'
export { is }
/**
* List && String
*/
export const concat = curry((y, x) => is(x) === 'Array' ? concatList(y, x) : concatString(y, x))
export const head = curry(x => is(x) === 'Array' ? headList(x) : headString(x))
export const init = curry(x => is(x) === 'Array' ? initList(x) : initString(x))
export const last = curry(x => is(x) === 'Array' ? lastList(x) : lastString(x))
export const length = curry(x => is(x) === 'Array' ? lengthList(x) : lengthString(x))
export const nth = curry((n, x) => is(x) === 'Array' ? nthList(n, x) : nthString(n, x))
export const reverse = curry(x => is(x) === 'Array' ? reverseList(x) : reverseString(x))
export const slice = curry((s, e, x) => is(x) === 'Array' ? sliceList(s, e, x) : sliceString(s, e, x))
export const tail = curry(x => is(x) === 'Array' ? tailList(x) : tailString(x))