Re: results from sort-by are not sorted

2019-05-05 Thread sheng . peisi . luo
Thanks. What a newbie question.

在 2019年5月6日星期一 UTC+8上午11:34:36,se...@corfield.org写道:
>
> (sort-by #{:age} …) will use the set #{:age} as the keyfn, and both 
> (#{:age} {:age 3, :name “luo”}) and (#{:age} {:age 1, :name “sheng”}) both 
> return :age – because both maps contain the key in the set. As far as 
> sort-by is concerned, both hash maps compare equal.
>
>  
>
> What you want is (sort-by :age …) so you the keyfn pulls the value 
> corresponding to :age out of the hash maps. That will produce 3 from {:age 
> 3, :name “luo”} and 1 from {:age 1, :name “sheng”} so they will sort 
> appropriately.
>
>  
>
> Sean Corfield -- (970) FOR-SEAN -- (904) 302-SEAN
> An Architect's View -- http://corfield.org/
>
> "If you're not annoying somebody, you're not really alive."
> -- Margaret Atwood
>
>  
>
> *From: *sheng@gmail.com 
> *Sent: *Sunday, May 5, 2019 7:48 PM
> *To: *Clojure 
> *Subject: *results from sort-by are not sorted
>
>  
>
> Hey there, 
>
>  
>
> in my lein repl, 
>
>  
>
> (sort-by #{:age} [{:age 3,:name "luo"},{:age 1,:name "sheng"}]) 
>
>  
>
> returns 
>
>  
>
> ({:age 3, :name "luo"} {:age 1, :name "sheng"}) 
>
>  
>
> rather than 
>
>  
>
> ({:age 1, :name "sheng"}, {:age 3, :name "luo"}). 
>
>  
>
> Why?
>
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@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
> clo...@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 clo...@googlegroups.com .
> For more options, visit https://groups.google.com/d/optout.
>
>  
>

-- 
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.


RE: results from sort-by are not sorted

2019-05-05 Thread sean
(sort-by #{:age} …) will use the set #{:age} as the keyfn, and both (#{:age} {:age 3, :name “luo”}) and (#{:age} {:age 1, :name “sheng”}) both return :age – because both maps contain the key in the set. As far as sort-by is concerned, both hash maps compare equal. What you want is (sort-by :age …) so you the keyfn pulls the value corresponding to :age out of the hash maps. That will produce 3 from {:age 3, :name “luo”} and 1 from {:age 1, :name “sheng”} so they will sort appropriately. Sean Corfield -- (970) FOR-SEAN -- (904) 302-SEANAn Architect's View -- http://corfield.org/"If you're not annoying somebody, you're not really alive."-- Margaret Atwood From: sheng.peisi@gmail.comSent: Sunday, May 5, 2019 7:48 PMTo: ClojureSubject: results from sort-by are not sorted Hey there,  in my lein repl,  (sort-by #{:age} [{:age 3,:name "luo"},{:age 1,:name "sheng"}])  returns  ({:age 3, :name "luo"} {:age 1, :name "sheng"})  rather than  ({:age 1, :name "sheng"}, {:age 3, :name "luo"}).  Why?-- You received this message because you are subscribed to the GoogleGroups "Clojure" group.To post to this group, send email to clojure@googlegroups.comNote that posts from new members are moderated - please be patient with your first post.To unsubscribe from this group, send email toclojure+unsubscr...@googlegroups.comFor more options, visit this group athttp://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. 



-- 
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.


Re: results from sort-by are not sorted

2019-05-05 Thread Bill Xie
clojure.core/sort-by
([keyfn coll] [keyfn comp coll])
  Returns a sorted sequence of the items in coll, where the sort
  order is determined by comparing (keyfn item).  If no comparator is
  supplied, uses compare.  comparator must implement
  java.util.Comparator.  Guaranteed to be stable: equal elements will
  not be reordered.  If coll is a Java array, it will be modified.  To
  avoid this, sort a copy of the array.
nil

 于2019年5月6日周一 上午10:48写道:

> Hey there,
>
> in my lein repl,
>
> (sort-by #{:age} [{:age 3,:name "luo"},{:age 1,:name "sheng"}])
>
> returns
>
> ({:age 3, :name "luo"} {:age 1, :name "sheng"})
>
> rather than
>
> ({:age 1, :name "sheng"}, {:age 3, :name "luo"}).
>
> Why?
>
> --
> 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.
>


-- 
/**
* Bill Xie
* twitter: @joyrap
*/

-- 
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.


results from sort-by are not sorted

2019-05-05 Thread sheng . peisi . luo
Hey there, 

in my lein repl, 

(sort-by #{:age} [{:age 3,:name "luo"},{:age 1,:name "sheng"}]) 

returns 

({:age 3, :name "luo"} {:age 1, :name "sheng"}) 

rather than 

({:age 1, :name "sheng"}, {:age 3, :name "luo"}). 

Why?

-- 
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.