From 79d2a157e827c587dc3a9774f7e552690821e797 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 23 Jun 2013 11:33:29 -0400 Subject: Add vx, vy, and vz convenience procedures. --- 2d/vector.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to '2d') diff --git a/2d/vector.scm b/2d/vector.scm index 9dc1e1b..1d4c33e 100644 --- a/2d/vector.scm +++ b/2d/vector.scm @@ -23,13 +23,28 @@ (define-module (2d vector) #:use-module (rnrs base) - #:export (v+ + #:export (vx + vy + vz + v+ v* scale mag normalize vector-reduce)) +(define (vx vector) + "Returns the first element of a vector." + (vector-ref vector 0)) + +(define (vy vector) + "Returns the second element of a vector." + (vector-ref vector 1)) + +(define (vz vector) + "Returns the third element of a vector." + (vector-ref vector 2)) + (define (v+ . vectors) "Adds vectors." (apply vector-map + vectors)) -- cgit v1.2.3