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 [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
---
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 [email protected].
For more options, visit https://groups.google.com/d/optout.