RosettaCodeData/Task/Averages-Mean-angle/Clojure/averages-mean-angle-1.clj
2023-07-01 13:44:08 -04:00

12 lines
342 B
Clojure

(defn mean-fn
[k coll]
(let [n (count coll)
trig (get {:sin #(Math/sin %) :cos #(Math/cos %)} k)]
(* (/ 1 n) (reduce + (map trig coll)))))
(defn mean-angle
[degrees]
(let [radians (map #(Math/toRadians %) degrees)
a (mean-fn :sin radians)
b (mean-fn :cos radians)]
(Math/toDegrees (Math/atan2 a b))))