Yeah you are right, it is simpler, I just wanted to avoid usage of any 
sort* function, I've probably gone too far :)
*split-at* is cool reminder :) totally forgot about it :)

Thanks!

On Monday, October 10, 2016 at 3:33:16 PM UTC+2, Moe Aboulkheir wrote:
>
> Here's an example w/ iterate & a simpler 'smallest':
>
> (defn- smallest [xs]
>   (->> xs (map-indexed vector) (sort-by second) first))
>
> (defn selection-sort [s]
>   (->> (iterate
>         (fn [[acc xs]]
>           (let [[i x] (smallest xs)
>                 [l r] (split-at i xs)]
>             [(conj acc x) (concat l (rest r))]))
>         [[] s])
>        (drop-while (comp not-empty second))
>        ffirst))
>
> I don't think using iterate is a huge win.
>
> Take care,
> Moe
>

-- 
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/d/optout.

Reply via email to