UNPKG

crocks

Version:

A collection of well known Algebraic Datatypes for your utter enjoyment.

32 lines (24 loc) 789 B
/** @license ISC License (c) copyright 2017 original and current authors */ /** @author Ian Hofmann-Hicks (evil) */ var List = require('.') var curry = require('../core/curry') var isArray = require('../core/isArray') var isFunction = require('../core/isFunction') // arrayToList : [ a ] -> List a // arrayToList : (a -> [ b ]) -> a -> List b function arrayToList(array) { if(isArray(array)) { return List.fromArray(array) } else if(isFunction(array)) { return function(x) { var g = array(x) if(!isArray(g)) { throw new TypeError('arrayToList: Array returning function required') } return List.fromArray(g) } } throw new TypeError('arrayToList: Array or Array returning function required') } module.exports = curry(arrayToList)