On Wed, Jan 12, 2011 at 8:15 AM, WoodHacker <ramsa...@comcast.net> wrote:
> This is a much better solution.   It's shorter and is easier to read.
> Thanks for tip!
>
> On Jan 10, 11:49 pm, Sunil S Nandihalli <sunil.nandiha...@gmail.com>
> wrote:
>> (into-array (map float-array  [[1.0 1.0 2.0 2.0] [3.0 2.2 4.0 0.0]]))


Why not generalize further?

(defn arrayify [array-fn coll]
  (if (some #(and
               (not (instance? String %))
               (try (seq %) (catch Exception _))) coll)
    (into-array (map #(arrayify array-fn %) coll))
    (array-fn coll)))

user=> (arrayify float-array [1.2 0.3 4.0])
[1.2, 0.3, 4.0]
user=> (.getClass (arrayify float-array [1.2 0.3 4.0]))
[F

(My repl prints arrays nicely, like vectors)

user=> (arrayify float-array [[1.2 0.3][-2.1 4.0]])
[[1.2, 0.3],
 [-2.1, 4.0]]
user=> (.getClass (arrayify float-array [[1.2 0.3][-2.1 4.0]]))
[[F
user=> (arrayify int-array [[[1 0][2 4]][[3 7][9 -1]]])
[[[1, 0], [2, 4]],
 [[3, 7], [9, -1]]]
user=> (.getClass (arrayify int-array [[[1 0][2 4]][[3 7][9 -1]]]))
[[[I
user=> (arrayify (partial into-array String) ["foo" "bar"])
["foo", "bar"]
user=> (.getClass (arrayify (partial into-array String) ["foo" "bar"]))
[Ljava.lang.String;

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to