Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (ns clojure-noob.core
- (:gen-class)
- (:require [monger.core :as monger])
- (:require [monger.collection :as mongo-collection])
- (:import org.bson.types.ObjectId)
- )
- (let [
- mongo-connection (monger/connect {:host "localhost" :port 27017})
- mongo-database (monger/get-db mongo-connection "clojure-noob")
- ]
- (def symmetric_body_parts
- '(
- {:name "eye" :size 1}
- {:name "ear" :size 1}
- {:name "shoulder" :size 3}
- {:name "upper-arm" :size 3}
- {:name "forearm" :size 3}
- {:name "kidney" :size 1}
- {:name "hand" :size 2}
- {:name "knee" :size 2}
- {:name "thigh" :size 4}
- {:name "lower-leg" :size 3}
- {:name "achilles" :size 1}
- {:name "foot" :size 2}
- )
- )
- (def asymmetric_body_parts
- '(
- {:name "head" :size 3}
- {:name "mouth" :size 1}
- {:name "nose" :size 1}
- {:name "neck" :size 2}
- {:name "chest" :size 10}
- {:name "back" :size 10}
- {:name "abdomen" :size 6}
- )
- )
- (defn create_hobbit_body
- []
- (defn create_symmetric_parts
- [part]
- (defn create_half
- [half part]
- (hash-map
- :name (str half "-" (:name part))
- :size (:size part)
- )
- )
- [
- (create_half "left" part)
- (create_half "right" part)
- ]
- )
- (concat
- asymmetric_body_parts
- (reduce
- (fn [arg1 arg2] (concat (create_symmetric_parts arg2) arg1))
- []
- symmetric_body_parts
- )
- )
- )
- (defn -main
- [& args]
- (doseq [i (create_hobbit_body)]
- (mongo-collection/insert mongo-database "body_parts" {
- :_id (ObjectId.)
- :name (:name i)
- :size (:size i)
- })
- )
- (monger/disconnect mongo-connection)
- )
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement