Pipeline Operator And Functions In Elixir And Elm

Image for post
Image for post

TL;DR

Let’s explain the most exciting Elixir and Elm operator and how it operates with functions. This post is part of the functional language series.

We have already learned how to define functions in Elixir and Elm. The function is a black box with input and output. We day that output is a function of the input. To solve problems, the programmer has to use multiply functions.

The program is a pipeline of chained functions.

The output of the previous function is the input of the next one. Elixir and Elm have an operator for that feature, a pipeline:

|>

Elixir example of pipe in IEx:

Image for post
Image for post

Here we pipe two math functions: a square root and power. Squareroot has only one input, while pow has two inputs, number, and actual power. Both functions have only one output.

We “pipe” number two as input to :math.sqrt() function, and result of that function we pipe into :math.pow(2) function. This is why :math.sqrt() has empty parenthesis, while :math.pow(2) has only number 2 as input.

A similar example in Elm Repl:

Image for post
Image for post

Here we first pipe -4 to abs which results in 4, and then we pipe that to sqrt. We do this because we can only take sqrt of positive numbers.

Remember

Originally published at https://blog.tentamen.eu on May 22, 2020.

Written by

Founder of Tentamen, software testing agency.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store