performance - How can I completely copy a Clojure symbol to a new symbol? -
I have a code that converts a matrix directly to the display. Before I mutate it, I have to get a full copy in a new signal, which is used by the mutation process. Is there anyway that I can copy the content of a closed symbol in a new symbol so that it can be mutated without affecting the other?
This is one of my unsuccessful attempts:
(Various matte 1 (claytrix / matrix (Claritrix / 2 2)) (Vir Mat 1) Analyzer.core 'matte 1 (claytrix / matrix (claytrix / 2 2) 1 matte (intern' analyzer.core 'matte matte matte 1) matte 2 (claytrix / set matte 1 0 2 2) matte matte And of course, it does not work: (def mat1 (Claritrix / matrix (Claritrix / 2 2) (DIT matte2 matte 1) I also tried (but I am sure if I am doing it anyway):
(def matte 1 (claritrix / matrix (Claritrix / 2 2) (DAP Matt 2 'matte 1) and
(def matte 1 (claritrix / matrix (chartratrix / ray 2 2)) (deaf matte2 ~ matte 1) and
(def matte 1 (clutrix / matrix (clutter / s 2) 2) (def mate 2 (.dup mat1) ) Any ideas?
Update I asked the question D has done so far. I'm not sure what lines symbolize. Setup:
(def mat1 (clatrix / 1 1000 1000); Creates 1000x1000 matrix of 1.0 in each element. From @mars:
(criterium.core / bench (let [matte 2 (claytrix / matrix mat 1)])
From @JoG:
(criterium.core / bench (let [matte 2 (reading-string (Public relations) -str mat1))])
for more general cases @Jaage's solution will work for data structures that str If someone has ideas about making a more general solution, please answer I will update it.
Just use the matrix again: ('clatrix.core: as clatrix)); Zero (DIT Mat 1 (Clutter / Matrix [[1 1] [1 1]]; # 'User / Mat 1 (Deaf Mat 2 (Claytrix / Matrix Mat 1)); #' User / Matt2 Matt; A2 X2 matrix; ------------- 1.0 0e + 00 1.00e + 00; 1.00e + 00 1.00e + 00 (Claracter / set matte 1 0); # & lt; double matrix [2.000000, 1.000000; 1.000000, 1.000000]> MAT 1; A 2x2 matrix; ------------- 2.00e + 00 1.00e + 00; 1.00e + 00 1.00e + 00 Matte 2; a 2x2 matrix; -------------; 1.00e + 00 1.00e + 00; 1.00e + 00 1.00e + 00
Comments
Post a Comment