From fafc747be5c52f420d35b0ca8103913d2ef0e575 Mon Sep 17 00:00:00 2001 From: Glen Whitney Date: Tue, 27 Dec 2022 11:09:30 -0500 Subject: [PATCH] feat: add more type functions (FAIL: type recursion) --- src/Complex/type.ts | 10 +++++++++- src/numbers/type.ts | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Complex/type.ts b/src/Complex/type.ts index 0f1e4bb..7a30034 100644 --- a/src/Complex/type.ts +++ b/src/Complex/type.ts @@ -20,5 +20,13 @@ export const Complex_type = { export const typeImps = () => ({ complex_unary: (dep: Dependency<'zero', [T]>) => (t: T) => ({re: t, im: dep.zero(t)}), - complex_binary: (t: T, u: T) => ({re: t, im: u}) + complex_binary: (t: T, u: T) => ({re: t, im: u}), + zero: (dep: Dependency<'zero', [T]>) => + (z: Complex) => ({re: dep.zero(z.re), im: dep.zero(z.im)}), + one: (dep: Dependency<'zero' | 'one', [T]>) => + (z: Complex) => ({re: dep.one(z.re), re: dep.zero(z.im)}), + nan: (dep: Dependency<'nan', [T]>) => + (z: Complex) => ({re: dep.nan(z.re), im: dep.nan(z.im)}), + re: (dep: Dependency<'re', [T]>) => + (z: Complex) => dep.re(z.re) }) diff --git a/src/numbers/type.ts b/src/numbers/type.ts index fcfc330..932df7b 100644 --- a/src/numbers/type.ts +++ b/src/numbers/type.ts @@ -5,5 +5,8 @@ export const number_type = { } export const typeImps = () => ({ - zero: (a: number) => 0 + zero: (a: number) => 0, + one: (a: number) => 1, + nan: (a: number) => NaN, + re: (a: number) => a })