Hi there,

This is possibly a silly question (and may have been asked before but I
couldn't find earlier examples) so here it goes.

We start with a form which we're all familiar with:

user=> (:this {:this "is" :the "same"})
"is"


Then it's not a stretch to go to:

user=> (def the 1)
#'user/the
user=> (nth [1 "is" the :same] 1)

"is"


Here's where it gets tricky as we enter the land of make believe and
what-if?

I suggest a special form where vector elements could be treated like
functions in a manner similar to maps keys.  As this is purely
hypothetical there might be better ways of representing this:

Get the nth element of the vector

user=> (3 [1 "is" the :same])
:same


Get the nth element of the vector

user=> (2 [1 "is" the :same])
1


Get the nthiness of an element in the vector

user=> (::same [1 "is" the :same])
3


Get the nthiness of an element in the vector

user=> (:the [1 "is" the :same])
2


Get the nthiness of an element in the vector

user=> (:1 [1 "is" the :same])
(0 2)


Taking things further into the realms of really you should have stopped
there!

Get the these element of the vector

user=> ((1 3) [1 "is" the :same])
("is" :same)


Just for fun I tried:

user=> ((:this :the) {:this "is" :the "same"})


NullPointerException   user/eval786 (NO_SOURCE_FILE:1)



I may be barking up the wrong tree or possibly just barking...  I hope what
I'm asking makes some sort of sense.  By way of apology to the reader, when
I began writing this question it was ill thought out and seemed a lot
simpler.  As a disclaimer, I can't think of direct examples how this would
improve readability or such or even necessarily be useful.  Though, that
being said, I do believe that there people who'd make good use of such a
feature, though I don't know who they are either but I'm hoping you're
reading this ;)

My parting shot, I have a guess as to why things are the way they are but
that is completely in substantiated and lacks in even the most basic
rationality as I also guess as to why my guess might not be true... :(


--
Warning!  If you question everything the answer you'll get is "EVERYTHING!"

Stephen.

-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to