UNPKG

crocks

Version:

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

28 lines (21 loc) 583 B
/** @license ISC License (c) copyright 2016 original and current authors */ /** @author Ian Hofmann-Hicks (evil) */ var isFunction = require('../core/isFunction') var isNil = require('../core/isNil') var ref = require('../core/Maybe'); var Nothing = ref.Nothing; var Just = ref.Just; function tail(m) { if(!isNil(m)) { if(isFunction(m.tail)) { return m.tail() } if(isFunction(m.slice)) { return m.length < 2 ? Nothing() : Just(m.slice(1)) } } throw new TypeError('tail: Array, String or List required') } module.exports = tail