On Sat, Aug 8, 2015 at 12:39 PM, kirby urner <[email protected]> wrote:
>
> (defrecord XYZray [OX OY OZ]
> VectorOps
> (norm [this] (this))
>
Should be (norm [this] this) not (norm [this] (this)), because the latter
will try to invoke `this` as a function.
(defn qray-to-xyzray
[qray]
(let [[a] [(:OA qray)]
[b] [(:OB qray)]
[c] [(:OC qray)]
[d] [(:OD qray)]
[x] [(* (/ 1 (Math/sqrt 2))(+ (- (- a b) c) d))]
[y] [(* (/ 1 (Math/sqrt 2))(- (+ (- a b) c) d))]
[z] [(* (/ 1 (Math/sqrt 2))(- (- (+ a b) c) d))]]
(XYZray. x y z)))
You have excessive, unnecessary brackets in your let clause. Should look
like this:
(defn qray-to-xyzray
[qray]
(let [a (:OA qray)
b (:OB qray)
etc....
Your way "works" because basically you are building two extra vectors which
are implicitly getting destructured, but that's syntactically noisy and
also a lot of extra computational work that is unneeded.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.