All checks were successful
/ test (push) Successful in 17s
Establishes a global config object for a TypeDispatcher instance, so far with just properties representing comparison tolerances. Begins a "relational" group of functions with basic approximate equality, and an initial primitive ordering comparison. Ensures that methods that depend on properties of `config` will be properly updated when those properties change. Reviewed-on: #19 Co-authored-by: Glen Whitney <glen@studioinfinity.org> Co-committed-by: Glen Whitney <glen@studioinfinity.org>
13 lines
436 B
JavaScript
13 lines
436 B
JavaScript
import {ReturnsAs} from './helpers.js'
|
|
import {onType, ResolutionError} from '#core/helpers.js'
|
|
import {Returns} from '#core/Type.js'
|
|
import {Any} from "#core/TypePatterns.js"
|
|
|
|
export const isZero = (math, [T]) => {
|
|
if (!T) { // called with no arguments
|
|
throw new ResolutionError('isZero() requires one argument')
|
|
}
|
|
const z = math.zero(T)
|
|
const eq = math.equal.resolve([T, T])
|
|
return ReturnsAs(eq, x => eq(z, x))
|
|
}
|