# Seeking feedback on Chainables before registering it

**URL:** https://discourse.julialang.org/t/seeking-feedback-on-chainables-before-registering-it/136175
**Category:** Package Announcements
**Tags:** package, feedback, chain
**Created:** [March 13, 2026, 5:54am UTC](https://discourse.julialang.org/t/seeking-feedback-on-chainables-before-registering-it/136175 "2026-03-13T05:54:56Z")
**Posts on this page:** 1
**Showing post:** 4

<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: [March 13, 2026, 10:55am UTC](https://discourse.julialang.org/t/seeking-feedback-on-chainables-before-registering-it/136175/4 "2026-03-13T10:55:00Z")

</div>

Totally share the overall goal of making data manipulation more convenient in Julia 🙂 But creating a macro for each function one may want to use doesn’t really scale… Even for `Iterators.filter` you had to create another name that one needs to remember, in addition to the underlying function.

There’s already [DataPipes.jl](https://discourse.julialang.org/t/ann-datapipes-jl-0-3-0/60734) _(disclaimer: I’m the author)_ that’s stable and has been around for ~5 yrs.  
DataPipes is specifically designed to be a lightweight code transformation that makes all common data manipulation functions in Julia basically boilerplate-free. Not just `Base.xxx`, or `Iterators.xxx`, but all functions that follow the Julian argument order:

> [@TyronCameron](#):
>
> #### Current way
> 
> ```julia-auto
> @chain 1:10 begin
> zip(21:30)
> collect
> filter(t -> t[2] <= 25, _)
> map(t -> t[1], _)
> end
> 
> ```

With DataPipes.jl:

```julia-auto
@p let
   1:10
   zip(21:30)
   collect
   filter(_[1] <= 25)
   map(_[2])
end

```

Same with `Iterators.filter`, of course:

```julia-auto
@p let
   1:10
   zip(21:30)
   Iterators.filter(_[1] <= 25)
   map(_[2])
end

```

The transformation is purely syntactic – basically, just two operations, pass the previous step result and transform `_` into lambda. No special handling of any functions ever!

---

_[View the full topic](https://discourse.julialang.org/t/seeking-feedback-on-chainables-before-registering-it/136175)._
