Not to veer a hijack, but a 'popular' or common functions group could be useful for people learning clojure. It could be assembled by taking the number of occurrences in a set of code or by being hand-picked by people-who-should-know. Everyone who uses clojure should have an idea of everything that's available but nobody waits to write a program until they've memorized the language libraries.
Giving people the hints on what to prioritize in their clojure learning and what tools (functions, etc.) to pick from in their clojure use would both help them to write their first programs and maybe speed learning overall due to more efficient use of time. - Ryan On Wed, Nov 10, 2010 at 10:37 AM, Gary Poster <gary.pos...@gmail.com> wrote: > > On Nov 10, 2010, at 11:16 AM, Meikel Brandmeyer wrote: > >> Hi, >> >> On 10 Nov., 17:09, Gary Poster <gary.pos...@gmail.com> wrote: >> >>> I believe that the cost of having developers remember both rseq and reverse >>> (why can't reverse just DTRT if it is given a vector?), last and peek >>> (same), butlast and pop (same), and nth and get (same) is unnecessarily >>> high. >> >> Ehm. No. >> >> rseq O(1), reverse O(n). >> peek O(1), last O(n). >> pop O(1), butlast O(n). >> get O(1), nth O(n). >> >> (Where O(1) might sometimes mean O(log32 n)) >> >> The different functions are there under different names, because they >> have different performance promises. > > But that's exactly my point. Why should developers have to remember to use > rseq on a vector, as the first example? Why can't reverse simply be part of > a protocol, so that it gives O(1) when it can? Is there *any* practical > value to having reverse have O(n) performance on a vector? Clojure is > advertised as a practical language (I remember reading it early in JoC, for > instance), and I don't see it here. > >> Then peek is not equivalent to >> last. For lists it is equivalent to first. > > OK, thank you. As I said initially, the email could have been researched > better, but the larger thought is still valid, with other reasonable examples. > > Gary > -- 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