Elixir pipes and anonymous functions
I'm not sure why you'd need to pipe three different streams - one for every manipulation. I'd probably use one Stream to do all the manipulations together, something like:

filedates = files |&gt; Stream.map &amp;((&amp;1 |&gt; File.stat!).ctime |&gt; datastr.())


or

filedates = files |&gt; Stream.map &amp;(File.stat!(&amp;1).ctime |&gt; datastr.())