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: [email protected] <[email protected]> on behalf of Justin Smith <[email protected]> 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 <[email protected]<mailto:[email protected]>> wrote: Thanks. What a newbie question. 在 2019年5月6日星期一 UTC+8上午11:34:36,[email protected]<mailto:[email protected]>写道: (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: [email protected] 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 [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 --- 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 [email protected]. 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 [email protected]<mailto:[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]<mailto:clojure%[email protected]> 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 [email protected]<mailto:[email protected]>. 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 [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 --- 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 [email protected]<mailto:[email protected]>. 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 [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 --- 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 [email protected]. 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.
