The do's are unnecessary. On Thu, Jul 30, 2015 at 2:50 PM, James Reeves <ja...@booleanknot.com> wrote:
> One quick suggestion is that arithmetic operations in Clojure frequently > take multiple arguments. So: > > (reduce + [1 2 3]) > > Is equivalent to: > > (+ 1 2 3) > > In terms of style, variables are typically lower-case in Clojure except > when referring to a class, interface or protocol. > > - James > > On 30 July 2015 at 19:03, kirby urner <kirby.ur...@gmail.com> wrote: > >> Greetings all. >> >> I'm new to Clojure (but not to programming) and wanted to document a >> first effort. >> The blog post: http://controlroom.blogspot.com/2015/07/ramping-up.html >> >> === >> >> (ns test-project.synmods) >> >> (defn add-open >> [edges] >> (let [[a b c d e f] edges >> [a2 b2 c2 d2 e2 f2] (map (fn [x] (* x x)) edges )] >> (do >> (reduce + [ >> (reduce * [f2 a2 b2]) >> (reduce * [d2 a2 c2]) >> (reduce * [a2 b2 e2]) >> (reduce * [c2 b2 d2]) >> (reduce * [e2 c2 a2]) >> (reduce * [f2 c2 b2]) >> (reduce * [e2 d2 a2]) >> (reduce * [b2 d2 f2]) >> (reduce * [b2 e2 f2]) >> (reduce * [d2 e2 c2]) >> (reduce * [a2 f2 e2]) >> (reduce * [d2 f2 c2])]) >> ))) >> >> (defn add-closed >> [edges] >> (let [[a b c d e f] edges >> [a2 b2 c2 d2 e2 f2] (map (fn [x] (* x x)) edges )] >> (do >> (reduce + [ >> (reduce * [a2 b2 d2]) >> (reduce * [d2 e2 f2]) >> (reduce * [b2 c2 e2]) >> (reduce * [a2 c2 f2])]) >> ))) >> >> (defn add-opposite >> [edges] >> (let [[a b c d e f] edges >> [a2 b2 c2 d2 e2 f2] (map (fn [x] (* x x)) edges )] >> (do >> (reduce + [ >> (reduce * [a2 e2 (+ a2 e2)]) >> (reduce * [b2 f2 (+ b2 f2)]) >> (reduce * [c2 d2 (+ c2 d2)])]) >> ))) >> >> (defn Volume >> [edges] >> (let [ open ( add-open edges) >> closed ( add-closed edges) >> opposite ( add-opposite edges)] >> (Math/sqrt (* (- (- open closed) opposite) 0.5)))) >> >> (println (format "All edges D=1, Volume: %s" (Volume [1.0 1.0 1.0 1.0 1.0 >> 1.0]) )) >> >> ; A Module >> (def a 1.0) >> (def EF (* a (/ (Math/sqrt 6.0) 12.0 ))) >> (def EC (* a (/ (Math/sqrt 6.0) 4.0 ))) >> (def ED (* a (/ (Math/sqrt 2.0) 4.0 ))) >> (def FC (* a (/ (Math/sqrt 3.0) 3.0 ))) >> (def CD (/ a 2.0) ) >> (def DF (* a (/ (Math/sqrt 3.0) 6.0 ))) >> >> (def Avol (Volume [EF EC ED FC CD DF])) >> (println (format "Amod volume: %s" Avol)) >> >> ; E Module >> ; Fig. 986.411A T & E Module >> ; http://www.rwgrayprojects.com/synergetics/s09/figs/f86411a.html >> >> (def D 1.0) >> (def R (/ D 2.0)) >> (def h R) >> >> (def OC h) >> (def OA (* h (Math/sqrt (/ (- 5.0 (Math/sqrt 5.0)) 2.0))) ) >> (def OB (* h (Math/sqrt (/ (- 9.0 (* 3 (Math/sqrt 5.0))) 2.0)))) >> (def CA (* (/ h 2.0) (- (Math/sqrt 5.0) 1.0))) >> (def AB (* h (Math/sqrt (- 5.0 (* 2.0 (Math/sqrt 5.0)))))) >> (def BC (* (/ h 2.0) (- 3.0 (Math/sqrt 5.0)))) >> >> (def Evol (Volume [OC OA OB CA AB BC])) >> (println (format "Emod volume: %s" Evol)) >> >> ; S Module >> ; Fig. 988.13A S Quanta Module Edge Lengths >> ; http://www.rwgrayprojects.com/synergetics/s09/figs/f8813a.html >> >> (def a D) >> (def FG (* (/ a 2.0) (* (Math/sqrt 3.0) (Math/sqrt (- 7.0 (* 3.0 ( >> Math/sqrt 5.0))))) ) ) >> (def FE (* a (Math/sqrt (- 7.0 (* 3.0 (Math/sqrt 5)))))) >> (def FH (* (/ a 2.0) (- (Math/sqrt 5.0) 1.0))) >> (def GE (* (/ a 2.0) (Math/sqrt (- 7.0 (* 3.0 ( Math/sqrt 5)))))) >> (def EH (* (/ a 2.0) (- 3.0 (Math/sqrt 5.0)))) >> (def HG GE) >> >> (def Svol (Volume [FG FE FH GE EH HG])) >> (println (format "Smod volume: %s" Svol)) >> >> (println (format "sFactor: %s" (/ Svol Evol))) >> >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> 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 clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > 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 clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com 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 clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.