UNPKG

crocks

Version:

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

24 lines (18 loc) 625 B
/** @license ISC License (c) copyright 2016 original and current authors */ /** @author Ian Hofmann-Hicks (evil) */ var ref = require('../core/Maybe'); var Nothing = ref.Nothing; var Just = ref.Just; var predOrFunc = require('../core/predOrFunc') var curry = require('../core/curry') var isPredOrFunc = require('../core/isPredOrFunc') // safe : ((a -> Boolean) | Pred) -> a -> Maybe a function safe(pred, x) { if(!isPredOrFunc(pred)) { throw new TypeError('safe: Pred or predicate function required for first argument') } return predOrFunc(pred, x) ? Just(x) : Nothing() } module.exports = curry(safe)