-1

Currently I am getting this error.

Parameter declaration symmetrize-body-parts should be a vector,
compiling:(braveclojure/core.clj:41:49)

My core.clj file

(ns braveclojure.core
  (:gen-class))

(def asym-hobbit-body-parts [{:name "head" :size 3}
                            {:name "left-eye" :size 1}
                            {:name "left-ear" :size 1}
                            {:name "mouth" :size 1}
                            {:name "nose" :size 1}
                            {:name "neck" :size 2}
                            {:name "left-shoulder" :size 3}
                            {:name "left-upper-arm" :size 3}
                            {:name "chest" :size 10}
                            {:name "back" :size 10}
                            {:name "left-forearm" :size 3}
                            {:name "abdomen" :size 6}
                            {:name "left-kidney" :size 1}
                            {:name "left-hand" :size 2}
                            {:name "left-knee" :size 2}
                            {:name "left-thigh" :size 4}
                            {:name "left-lower-leg" :size 3}
                            {:name "left-achilles" :size 1}
                            {:name "left-foot" :size 2}])

(defn needs-matching-part? [part]
    (re-find #"^left-" (:name part)))

(defn make-matching-part [part] {:name (clojure.string/replace (:name part) #"^left-" "right-")
     :size (:size part)})

(defn symmetrize-body-parts
    "Expects to see a seq of maps which have a :name and :size"
    [asym-body-parts]
    (loop [remaining-asym-parts asym-body-parts
           final-body-parts []]
           (if (empty? remaining-asym-parts)
             final-body-parts
             (let [[part & remaining] remaining-asym-parts
                    final-body-parts (conj final-body-parts part)]
                (if (needs-matching-part? part)
                    (recur remaining (conj final-body-parts (make-matching-part part)))
                    (recur remaining final-body-parts))))))

(defn -main (symmetrize-body-parts asym-hobbit-body-parts))

I use lein run in the clojure app folder but it is raising the above error. I have switched different things around in regards to the parameter brackets [] location for the symmetrize-body-parts function definition from above to below the docstring as well but to no avail. What is going on here?

Following the tutorial from here.

trendsetter37
  • 582
  • 8
  • 15

1 Answers1

1

Try:

(defn -main [] 
  (symmetrize-body-parts asym-hobbit-body-parts))
sbensu
  • 1,491
  • 10
  • 9