I agree that negative indexing (and presumably also modulo indexing for the upper index?) is very useful. Stuff like this comes up all the time in core.matrix
However I don't think it makes sense as a standard feature in Clojure's low-level data constructs for several reasons: a) It's a breaking change for people who are handling out-of-bounds cases b) In new code it will mask out-of-bounds errors, which can conceal some nasty bugs c) Cramming more implicit features into existing constructs is a bad idea in general: explicit is better d) It probably adds a small performance overhead. Not worth making everyone pay a cost for one special case feature This kind of thing is IMHO better handled by either wrapping the vector in a function, or creating some kind of extra collection wrapper that provides the negative indexing functionality. On Thursday, 27 June 2013 04:19:24 UTC+1, Michael-Keith Bernard (SegFaultAX) wrote: > Vectors and maps are already functions of their indices and keys, > respectively. I don't really think it makes sense for other sequence types > (seqs, lists, etc.) because they aren't naturally associative in the same > way. Finally, there isn't a Clojure form I'm aware of that allows negative > indices in the same way eg Python does, but I for one would find that > incredibly useful. > > On Wednesday, June 26, 2013 8:01:02 PM UTC-7, Greg Slepak wrote: >> >> There is one feature that I really miss from newLISP and seems like it >> could be a natural extension to Clojure, and that is implicit indexing for >> lists and arrays. >> >> Clojure already has something similar in its use of keywords to act as >> functions that look themselves up in a map. >> >> This is basically the same concept, but using numbers instead. Implicit >> indexing creates a really elegant syntax for finding elements and ranges in >> a list or array. Here's an example: >> >> > (setf mylist '(a b c d e f g)) >> (a b c d e f g) >> > (mylist 0) >> a >> > (mylist -1) >> g >> > (0 3 mylist) >> (a b c) >> >> >> Has this been considered already? Would this be something that could be >> added to the language syntax? >> >> Thanks for your consideration! >> >> Sincerely, >> Greg >> > -- -- 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/groups/opt_out.