ludic/docs/language/vector/vector-distance.md
Orkuncakilkaya 121053e179
Some checks failed
docs / build-and-deploy (push) Has been cancelled
feat(stdlib): 2D Vector type + Vector.* namespace (issue #25)
Implement the Vec.* half of #25 under the proper (de-abbreviated) name
Vector, unblocking it with a self-contained value type instead of waiting
on the full #1 type system.

A Vector is two Q16.16 fixed components (x, y) packed into one i64 — a true
by-value type that lives in a register and never allocates (reuses the new
`long`/i64 support; llty maps `Vector` to i64). Fifteen operations, all
deterministic fixed-point reusing fx_mul/fx_div/fx_lerp and the @fn_fx_*
prelude: make/zero/x/y, add/sub/scale/dot, length/distance/normalize/lerp,
rotate/angle/from_angle.

New selfhost/emit_vector.ludic (wired into emit_ns_call + the frag list),
the `Vector` primitive type in llty and the grammars/LSP/JetBrains tokens,
docs (type-vector + 15 Vector.* pages + section), and a registered test.
Reseeded; C-free fixpoint holds; all suites green (45/25/29); site + check.py OK.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-30 02:09:38 +03:00

514 B

id name category kind tokens sig tip order ns member
vector-distance Vector.distance vector namespace-method Vector.distance Vector.distance(a, b) -> fixed The distance between two points. 9 Vector distance

Returns the distance between points a and b — Vector.length(Vector.sub(a, b)). Handy for range checks and proximity triggers.

program Demo {
  handler Step phase Update {
    if Vector.distance(pos, target) < 8.0 { arrived() }
  }
}