# Define map, filter, ... also as functionals

**URL:** <https://discourse.julialang.org/t/define-map-filter-also-as-functionals/87401>\
**Category:** Internals & Design\
**Created:** [September 17, 2022, 12:26pm UTC](https://discourse.julialang.org/t/define-map-filter-also-as-functionals/87401 "2022-09-17T12:26:04Z")\
**Posts on this page:** 1\
**Showing post:** 8

<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 18, 2022, 9:34am UTC](https://discourse.julialang.org/t/define-map-filter-also-as-functionals/87401/8 "2022-09-18T09:34:07Z")

</div>

There are many functions both in Base and across the data ecosystem that take a function argument and a data argument. Why add a special currying method to all of them, when this can be solved once and in a clean way using one of the “piping” packages?  
I would recommend _(my)_ [DataPipes.jl](https://gitlab.com/aplavin/DataPipes.jl) ([discourse thread](https://discourse.julialang.org/t/ann-datapipes-jl-0-3-0/60734)) that has the main goal to make general data processing as convenient as possible. To my knowledge, `DataPipes` pipes have the least amount of code overhead compared to alternative packages. A basic example: `@p rand(10) |> filter(<=(0.5)) |> map(_ + 1)`.

---

_[View the full topic](https://discourse.julialang.org/t/define-map-filter-also-as-functionals/87401)._
