crocks
Version:
A collection of well known Algebraic Datatypes for your utter enjoyment.
20 lines (15 loc) • 605 B
JavaScript
/** @license ISC License (c) copyright 2017 original and current authors */
/** @author Ian Hofmann-Hicks (evil) */
var curry = require('../core/curry')
var isPredOrFunc = require('../core/isPredOrFunc')
var predOrFunc = require('../core/predOrFunc')
// or : (a -> Boolean) | Pred -> (a -> Boolean) | Pred -> a -> Boolean
function or(f, g) {
if(!(isPredOrFunc(f) && isPredOrFunc(g))) {
throw new TypeError(
'or: Preds or predicate functions required for first two arguments'
)
}
return function (x) { return !!(predOrFunc(f, x) || predOrFunc(g, x)); }
}
module.exports = curry(or)