A solution based on unfold with the last element read (or initially nil) and the rest of the list as a seed.
On Thu, Nov 11, 2010 at 12:12 AM, David Jacobs <[email protected]> wrote: > Thanks for all of the options, and Ken, thanks for the detailed comparison. > This will be extremely useful. (I'm trying to port some statistical tests to > Clojure for work.) > > Best, > David > > On 10 Nov 2010, at 5:13 pm, Alan wrote: > >> Juha's is my favorite by a mile. And if you're content with a list of >> [element, count] pairs, you could do this: >> >> (defn seq-ties [coll] >> (->> coll (partition-by identity) (filter next) (map (juxt first >> count))) >> >> (seq-ties [1 1 1 1 2 3 3 4 5 7 7]) >> ;==>([1 4] [3 2] [7 2]) >> >> On Nov 10, 1:27 pm, Juha Arpiainen <[email protected]> wrote: >>> On Nov 10, 10:28 pm, David Jacobs <[email protected]> >>> wrote: >>> >>>> I have a sorted list, and I'd like to derive from that a list >>>> containing all "ties" in the original. >>> >>> One more solution assuming input is sorted: >>> >>> (defn seq-ties [coll] >>> (mapcat #(cons (first %) %) (keep next (partition-by identity >>> coll)))) >>> >>> -- >>> Juha Arpiainen -- 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
