I come primarily from a perl programming background, but am trying
to learn Clojure.

  I'm looking for a clojure equivalent to the following.

  Perl:

   my $nestedDS = [ "foo", { hi => there, hello => ["buddy"] }, "hi"]

   my $foo = $nestedDS->[0];
   my $there = $nestedDS->[1]->{hi};
   my $hello = $nestedDS->[1]->{hello};
   my $hi = $nestedDS->[2];

   print "$foo $there $buddy $hi";

   I'm not sure if it exists or not, but hopefully if it doesn't it
can be created with a macro.

   To clarify, I'm looking for a function/macro that makes use of a
small DSL for accessing fields within the basic Clojure data
structures.

   The best I can come up with in Clojure for a DS equivalent to the
above is:

  (let [nestedDS ["foo", {"hi" "there", "hello", ["buddy"]}, "hi"]
       foo (nth nestedDS 0)
       there (get (nth nestedDS 1) "hi")
       buddy (first (get (nth nestedDS 1) "hello"))
       hi (nth nestedDS 2)]
    (print foo there buddy hi)
   )

  Its not that much longer, but if the fields were more deeply nested,
it would become a bit pretty annoying.

  Does any kind of DS access macro exist? If not, how hard do you
think it would be to write?

  Something like

    buddy (get-it nestedDS "[1]-{hello}-[0]")

  Or perhaps an even shorter syntax is possible?

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

Reply via email to