29 lines
732 B
TypeScript
29 lines
732 B
TypeScript
import { Complex } from './Complex/type.js'
|
|
import { absquare as absquare_complex } from './Complex/arithmetic.js'
|
|
import { square } from './experiment/arithmeticInfer.js'
|
|
|
|
const add = (a: number, b: number) => a + b
|
|
const multiply = (a: number, b: number) => a * b
|
|
const unaryMinus = (a: number) => -a
|
|
const absquare = (z: Complex<number>) => z.re * z.re + z.im * z.im
|
|
|
|
const quatAbsquare = absquare_complex({
|
|
add,
|
|
absquare
|
|
})
|
|
|
|
const result = quatAbsquare({re: {re: 0, im: 1}, im: {re:2, im: 3}})
|
|
const typeTest: typeof result = 7 // check myabs is just a number
|
|
|
|
console.log()
|
|
console.log('Result is', result)
|
|
|
|
|
|
const mySquare = square({
|
|
multiply,
|
|
unaryMinus
|
|
})
|
|
|
|
console.log()
|
|
console.log('mySquare(4)=', mySquare(4))
|