One other thing I like about function composition (I use a lot of pipelines) is the way I tend to write code. I start with a high level function and the pipeline, which often leads me to write a test about that pipeline. Then I go from macro to micro and start to implement the functions.
Another side-effect while using elixir is that most of the times I end up without any if's because pattern-matching allows me to focus on a single case at a time.
I'm also experimenting it with LLM's, because it gives me control over the interface and the functions I want to create. I can write the pipeline and ask the LLM to implement the inner functions, for example.
One other thing I like about function composition (I use a lot of pipelines) is the way I tend to write code. I start with a high level function and the pipeline, which often leads me to write a test about that pipeline. Then I go from macro to micro and start to implement the functions.
Another side-effect while using elixir is that most of the times I end up without any if's because pattern-matching allows me to focus on a single case at a time.
I'm also experimenting it with LLM's, because it gives me control over the interface and the functions I want to create. I can write the pipeline and ask the LLM to implement the inner functions, for example.
Oh, I really like the idea of using the pipeline as a way of specifying the types of functions to an LLM. I'll have to give that a try.
Thanks!