I recently got started with Elixir. I'm used to F#'s pipes, and Seq.map
and LINQ's .Select
statements. Things are different in Elixir, and the code I have seems very ugly. Anon functions in anon functions.
defrecord FileData, name: "", date: nil
def filedetails() do
files = File.ls!
datestr = fn {{year, month, day}, _time} -> "#{day}/#{month}/#{year}" end
filedates = files |> (Stream.map &(File.stat!(&1)))
|> (Stream.map &(&1.ctime))
|> Stream.map &(datestr.(&1))
Enum.zip(files,filedates)
|> Enum.map fn {n,d}->FileData[name: n, date: d] end
end
How should this be done?