nanomath/src/boolean/logical.js

10 lines
360 B
JavaScript
Raw Normal View History

import {BooleanT} from './BooleanT.js'
import {Returns} from '#core/Type.js'
import {match} from '#core/TypePatterns.js'
export const not = match(BooleanT, Returns(BooleanT, p => !p))
export const and = match(
[BooleanT, BooleanT], Returns(BooleanT, (p, q) => p && q))
export const or = match(
[BooleanT, BooleanT], Returns(BooleanT, (p, q) => p || q))