Skip to content

Instantly share code, notes, and snippets.

@sleepiecappy
Last active March 1, 2019 20:12
Show Gist options
  • Save sleepiecappy/50be6dd7c29f9c8f09005c90b6db0e24 to your computer and use it in GitHub Desktop.
Save sleepiecappy/50be6dd7c29f9c8f09005c90b6db0e24 to your computer and use it in GitHub Desktop.
Grouping entries by date on Scala | Elixir
defmodule Event do
@type t() :: %__MODULE__{date: Date.t(), title: String.t(), content: String.t()}
defstruct :date, :title, :content
def group(events) do
events
|> Enum.group_by(fn event -> envent.date)
|> Map.to_list()
|> Enum.sort(fn {k0, _}, {k1, _} -> Date.compare(k0, k1) == :lt)
end
end
import java.time.LocalDate
case class Event(day: LocalDate, title: String, content: String)
object Event {
type Events = Seq[Event]
type EventsByDay = (LocalDate, Events)
type OrderedEvents = Seq[EventsByDay]
def group(events: Events): OrderedEvents = {
def sorter(first: EventsByDay, second: EventsByDay) = first._1.isBefore(second._1)
events.groupBy(_.day).toSeq.sortWith(sorter)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment