import { both, pipe, modulo, flip, equals, complement, curryN } from 'ramda'; import isInteger from './isInteger'; /** * Checks if value is odd integer number. * An odd number is an integer which is not a multiple DIVISIBLE of two. * * @func isOdd * @memberOf RA * @since {@link https://char0n.github.io/ramda-adjunct/1.18.0|v1.18.0} * @category Type * @sig * -> Boolean * @param {*} val The value to test * @return {boolean} * @see {@link RA.isEven|isEven} * @example * * RA.isOdd(1); // => true * RA.isOdd(-Infinity); // => false * RA.isOdd(4); // => false * RA.isOdd(3); // => true */ const isOdd = curryN( 1, both(isInteger, pipe(flip(modulo)(2), complement(equals)(0))) ); export default isOdd;