Skip to main content
Module

x/fun/set.ts>compact

A collection of algebraic data types, lenses, and schemables based on a light weight higher kinded type implementation. Written for deno.
Go to Latest
function compact
import { compact } from "https://deno.land/x/fun@v2.0.0-alpha.10/set.ts";

Given an instance of Eq create a function that will take a ReadonlySet and return a new ReadonlySet where any members that are equal are deduplicated.

Examples

Example 1

import * as S from "./set.ts";
import * as N from "./number.ts";
import * as E from "./eq.ts";

const eq = E.struct({ num: N.EqNumber });
const compact = S.compact(eq);

const set = S.set({ num: 1 }, { num: 1 }, { num: 2 });
// Set({ num: 1 }, { num: 1 }, { num: 2 })

const result = compact(set); // Set({ num: 1 }, { num: 2 })

Returns

(ua: ReadonlySet<A>) => ReadonlySet<A>