# Data First Pipeline

**URL:** <https://discourse.julialang.org/t/data-first-pipeline/103582>\
**Category:** General Usage\
**Tags:** piping\
**Created:** [September 6, 2023, 8:28pm UTC](https://discourse.julialang.org/t/data-first-pipeline/103582 "2023-09-06T20:28:12Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![aplavin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aplavin/32/222056_2.png) [@aplavin](https://discourse.julialang.org/u/aplavin)\
**Post date:** [September 6, 2023, 8:51pm UTC](https://discourse.julialang.org/t/data-first-pipeline/103582/3 "2023-09-06T20:51:53Z")

</div>

> [@ShalokShalom](#):
>
> since not everything here seems to be implemented as a function

What exactly do you mean here? Multiple dispatch, and functions with it, are fundamental to design of Julia and packages.

Julia data processing functions often take the “data last” approach in the terms of that article, as the first argument tends to be a lambda function: think `map`, `filter`, etc.  
[DataPipes.jl](https://discourse.julialang.org/t/ann-datapipes-jl-0-3-0/60734) is a small macro package that makes bulding pipeline of “data last” functions convenient. Eg, `@p tbl |> filter(_.a > 5) |> map(_.b + _.c) `.

---

_[View the full topic](https://discourse.julialang.org/t/data-first-pipeline/103582)._
