On Tue, May 17, 2011 at 2:03 PM, Alan <a...@malloys.org> wrote: > On May 17, 4:35 am, Ken Wesson <kwess...@gmail.com> wrote: >> On Mon, May 16, 2011 at 9:44 AM, Fogus <mefo...@gmail.com> wrote: >> > Hi Ken, >> >> > Thanks for this. I agree that a different name would be much more >> > clear. >> >> Here's one from chapter 7. Section 7.1.2, near the end, has: >> >> "Perhaps you see a familiar pattern: we apply the column-names vector >> as a function across a set of indices, building a sequence of its >> elements at those indices. This action will return a sequence of the >> values of that row for the supplied column names, which is then turned >> into a vector so that it can then be used as the sorting function" >> >> This does not seem to be correct. It seems to be applying the row map >> as a function across a seq of column names, building a sequence of its >> elements at those column keys. This action will return a sequence of >> the values of that row for the supplied column names, which is then >> turned into a vector so that it can then be used as the sort key. The >> function that *returns* the vector is the sorting function. >> >> (Interesting that sort will sort vectors, by "lexicographic" ordering. >> It doesn't seem to like lists, though, which is odd since the same >> rule would naturally apply. (Sure it could hang on infinite seqs, but >> so do lots of other functions, such as print and doall. And it could >> be implemented, probably fairly easily, to consume only as much of a >> seq as was needed to determine the sort position; then it would only >> hang if it hit two infinite seqs that were equal, e.g. two copies of >> (iterate inc 1).)) > > Vectors implement Comparable, and lists don't. I don't see any clear > reason for this, but patching sort is the wrong answer: instead > implement Comparable for lists.
I don't recall specifically suggesting patching sort. -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- 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