nanomath/src/number/type.js

13 lines
306 B
JavaScript
Raw Normal View History

import {plain} from './helpers.js'
import {BooleanT} from '#boolean/BooleanT.js'
import {Returns} from '#core/Type.js'
import {NumberT} from '#number/NumberT.js'
const num = f => Returns(NumberT, f)
export const number = plain(a => a)
number.also(
BooleanT, num(a => a ? 1 : 0),
[], num(() => 0)
)