@thi.ng/defmulti
Version:
Dynamic, extensible multiple dispatch via user supplied dispatch function.
14 lines (13 loc) • 372 B
JavaScript
import { illegalArity } from "@thi.ng/errors/illegal-arity";
import { DEFAULT, defmulti } from "./defmulti.js";
const defmultiN = (impls, fallback) => {
const fn = defmulti((...args) => args.length);
fn.add(DEFAULT, fallback || ((...args) => illegalArity(args.length)));
for (let id in impls) {
fn.add(id, impls[id]);
}
return fn;
};
export {
defmultiN
};