Sorry Josh, I should have replied to your original proposal. What I was getting at is that you can already use the existing Enum sorting functions with Dates, just by providing a sorter function, you don't have to convert to/from. As José mentioned though, there isn't any way to make Enum.sort/1 itself work on structs, it's up to the struct implementor to define functions which can be easily used with `Enum.sort_by` to make them sortable, such as `DateTime.to_unix`. There have been previous conversations on the mailing list about this subject, but I don't believe any of them got to a point where there was a viable implementation.
Paul On Fri, Jan 20, 2017 at 2:03 PM, Josh Crews <[email protected]> wrote: > Hi. I love Timex so much! > > Regarding work around... I guess? > > What do you think of the main thread question, "should Enum.sort work on > Date types"? > > On Friday, January 20, 2017 at 1:42:20 PM UTC-6, Paul Schoenfelder wrote: >> >> Probably easier to use `Enum.sort_by(dates, &DateTime.to_unix/1)`, no? >> >> Paul >> >> On Fri, Jan 20, 2017 at 1:39 PM, Josh Crews <[email protected]> wrote: >> >>> Current behavior: >>> >>> >>> iex(3)> [~D[2017-01-04], ~D[2017-04-03], ~D[2017-01-05]] |> Enum.sort >>> >>> [~D[2017-04-03], ~D[2017-01-04], ~D[2017-01-05]] >>> >>> >>> Proposed: >>> >>> iex(3)> [~D[2017-01-04], ~D[2017-04-03], ~D[2017-01-05]] |> Enum.sort >>> >>> [~D[2017-01-04], ~D[2017-01-05], ~D[2017-04-03]] >>> >>> >>> What I'm currently doing is: >>> >>> iex(4)> [~D[2017-01-04], ~D[2017-04-03], ~D[2017-01-05]] |> >>> Enum.map(&(Date.to_erl/1)) |> Enum.sort |> Enum.map(&(Date.from_erl!/1)) >>> >>> [~D[2017-01-04], ~D[2017-01-05], ~D[2017-04-03]] >>> >>> >>> which is working great, but would be cool to have Enum.sort work on Date >>> types too. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "elixir-lang-core" 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/ms >>> gid/elixir-lang-core/5cb8a9f9-ee03-497e-87d6-7bd9633b2f78% >>> 40googlegroups.com >>> <https://groups.google.com/d/msgid/elixir-lang-core/5cb8a9f9-ee03-497e-87d6-7bd9633b2f78%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "elixir-lang-core" 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/elixir-lang-core/8a996168-b548-4730-a2a6- > baa38a88d712%40googlegroups.com > <https://groups.google.com/d/msgid/elixir-lang-core/8a996168-b548-4730-a2a6-baa38a88d712%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" 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/elixir-lang-core/CAK%3D%2B-TtsjbC4%2B0NqUdPi85M8Dap5ZpN9OQkmhibd%3D_3WY8Tu5A%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
