 ;(cols (update vov-a 2 4 3))
 
 
-;define types
+;define records
 
 (defrecord NamedPoint [^String name ^long x ^long y])
 



(defn vov [h v]
  "create a vector of h v-item vectors"
  (vec (repeat h (vec (repeat v nil)))))

;(update [[1 2 3] [4 5 9] [6 7 8]] 2 1 100)

(->NamedPoint "haha" 3 4)

(map->NamedPoint {:name "haha" :x 2 :y 4})

;define types

(deftype Point [x y])

(def bb (Point. 3 4))

(.x bb)

(.y bb)

;

(deftype MyType [^:volatile-mutable fld])

;schrödinger's cat

(deftype SchrödingerCat [^:unsynchronized-mutable state]
  clojure.lang.IDeref
  (deref [sc]
         (locking sc
           (or state
               (set! state (if (zero? (rand-int 2))
                             :dead
                             :alive))))))

(defn schrödinger-cat
  []
  (SchrödingerCat. nil))

(def daguguguji (schrödinger-cat))

@daguguguji










