malvinbozniak

malvinbozniak

Hi there !
I’m Malvin and I’m new to FP in general.
I’ve started reading about FP and Elixir, and I found them so exciting :slight_smile:

Well, my first question for you is what the subject states.
When I chain functions in a pipe, do them run in parallel (like Unix piped commands do) ?
Or do I need to use specific syntax to do it so ?

Thanks & regards !

Showing Posts 1 to 4

NobbZ

NobbZ

The functions are called sequentially, they might trigger computations that happen concurrently or lazily…

Always remember that a |> f() just is a macro that expands into f(a).

david_ex

david_ex

As @NobbZ said, piping in Elixir is just syntactic sugar for readability. If you want to distribute work across CPU cores, you’ll want to look at something like GitHub - dashbitco/flow: Computational parallel flows on top of GenStage · GitHub (there’s a video presentation linked in the README there).

Fl4m3Ph03n1x

Fl4m3Ph03n1x

And flow (as recommended by @david_ex) builds on top of GenStage. Depending on the complexity of what you are trying to achieve, a more barebones approach (using GenStage) may be worthwhile when compared to the more nuclear one using Flow… or Broadway which is also really nice but attacks a different use case (more focused on metrics rather than pure data).

And if you really enjoy concurrent programming, you may want to keep your heads up for Hastega’s successor.

Overall, there are a multitude of options when you want concurrency in Elixir. But since you are starting (welcome, btw!) perhaps a concurrent map elixir recipe will be more suited for your needs:

I still remember when Joe (God rest his soul in peace) introduced pmap in his erlang classes. I was blown away by it’s simplicity, I hope you are too :stuck_out_tongue:

malvinbozniak

malvinbozniak OP

Very valuable answers :slight_smile:
Thank you all partners !

— All posts loaded —

Where Next? Top

Trending in Questions Top

Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
Onor.io
I have what I’ve heard referred to as a “lookup table” in my database. This is a way of assigning codes to common values. One common lo...
New
jaybe78
Hello, I’m developing a online persistent chat system (what’s app) like using elixir/dynamodb/aws for a mobile app(flutter). The diffic...
New
Trolleger
What approach to take when sending live updates to “random” users Hi! I have a question, I have a little chat app, and when I create a DM...
New
matt-savvy
Anyone here using Honeybadger? My Honeybadger account is being overwhelmed with noise from some bots. Seeing a lot of Bandit.HTTPError...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New

Other Trending Topics Top

sorenone
Oban v2.24.0 has been released. This release unifies configuration for queues, repos, and services, swaps opaque timing integers for rea...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews