Good catch, thank you! And that was my _second_ edit (my first draft was also 
wrong in a different way). Lesson: just try this stuff in the REPL to see what 
_really_ happens! 😊

Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/

"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood

________________________________
From: clojure@googlegroups.com <clojure@googlegroups.com> on behalf of Justin 
Smith <noisesm...@gmail.com>
Sent: Monday, May 6, 2019 1:53:48 PM
To: Clojure
Subject: Re: results from sort-by are not sorted

minor nitpick to the answer Sean provided: #{:age} as a function returns :age 
for an argument equal to :age and nil for all other inputs, including a hash 
map containing that key.

On Sun, May 5, 2019, 22:22 
<sheng.peisi....@gmail.com<mailto:sheng.peisi....@gmail.com>> wrote:
Thanks. What a newbie question.

在 2019年5月6日星期一 UTC+8上午11:34:36,se...@corfield.org<mailto: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<mailto: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<mailto:clojure%2bunsubscr...@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<mailto: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<mailto: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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CY4PR2201MB11266635C48A625AD749EB33F4310%40CY4PR2201MB1126.namprd22.prod.outlook.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to