feat: Add vector clone

This commit is contained in:
Glen Whitney 2025-04-28 16:25:03 -07:00
parent 7d150e2860
commit f002310581
4 changed files with 43 additions and 0 deletions

15
src/vector/helpers.js Normal file
View file

@ -0,0 +1,15 @@
import {Vector} from './Vector.js'
import {NotAType, Returns} from '#core/Type.js'
import {match} from '#core/TypePatterns.js'
export const promoteUnary = name => match(Vector, (math, V, strategy) => {
if (V.Component === NotAType) {
// have to resolve element by element :-(
return Returns(V, v => v.map(
elt => math.resolve(name, math.typeOf(elt), strategy)(elt)))
}
const compOp = math.resolve(name, V.Component, strategy)
return Returns(Vector(compOp.returns), v => v.map(elt => compOp(elt)))
})