Re: Are strings vectors? Should 'get' docstring be changed?

2016-04-21 Thread Mars0i
On Thursday, April 21, 2016 at 2:20:11 PM UTC-5, Mars0i wrote: > The behavior with strings is simply undocumented anywhere, afaik, though. > Sorry, that was wrong even before I added an example to clojure.docs. The conj.io documentation is quite explicit and detailed. -- You received this

Re: Are strings vectors? Should 'get' docstring be changed?

2016-04-21 Thread Alex Miller
Strings are indexed. They are a special case because String is a Java final class that cannot be "extended" to support the core interfaces inside Clojure's Java implementation. If Clojure were itself protocol-based (like ClojureScript is), the protocol could cover this without the special case.

Re: Are strings vectors? Should 'get' docstring be changed?

2016-04-21 Thread Mars0i
On Thursday, April 21, 2016 at 11:49:16 AM UTC-5, Andy Fingerhut wrote: > > Most doc strings are considered terse by many people. This appears to be > considered a feature by those who maintain Clojure, not a bug, with one > reason given by Stuart Halloway in his recent talk on using the

Re: Are strings vectors? Should 'get' docstring be changed?

2016-04-21 Thread adrian . medina
That's a good point, but it should be noted that all collections for which clojure.core/counted? returns true (they implement clojure.lang.Counted) should implement count in constant time. So the design of the Counted interface was clearly intended to provide consumers a soft guarantee of

Re: Are strings vectors? Should 'get' docstring be changed?

2016-04-21 Thread adrian . medina
That's a good point, but it should be noted that all collections for which clojure.core/counted? returns true (they implement clojure.lang.Counted) should implement count in constant time. So the design of the Counted interface was clearly intended to provide consumers a soft guarantee of

Re: Are strings vectors? Should 'get' docstring be changed?

2016-04-21 Thread Michael Gardner
On Apr 21, 2016, at 10:04, James Reeves wrote: > > Clojure seems to avoid having functions that have variable performance > depending on the data structure they're applied to. But not always! (e.g. count) -- You received this message because you are subscribed to the

Re: Are strings vectors? Should 'get' docstring be changed?

2016-04-21 Thread James Reeves
It doesn't necessarily follow that something that works with clojure.core/get needs to work with clojure.core/assoc. You can have an object that implements ILookup but not Associative, for instance. The problem with using assoc with native JVM data structures like strings and arrays is that there

Re: Are strings vectors? Should 'get' docstring be changed?

2016-04-21 Thread Andy Fingerhut
This is a special case behavior of clojure.core/get, as you can see in the RT.java source file at these lines: https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/RT.java#L750-L755 I have no idea if a JIRA would be accepted for any change on this or not, but if one was, I suspect

Are strings vectors? Should 'get' docstring be changed?

2016-04-21 Thread Mars0i
The docstring for 'get' says nothing explicit about vectors ("Returns the value mapped to key, not-found or nil if key not present.") but most of us know that vectors can be viewed as associative data structures where indexes are like keys: (get [\a \b \c] 1) \b 'get' also works on strings: