Project

General

Profile

Actions

Feature #20580

open

Pipe Operator accepting lambda

Added by martinosis (Martin Chabot) 14 days ago. Updated 7 days ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:118316]

Description

I think that the pipe operator was not reflecting the actual pipe operator in functional programming language.

In Elixir, Elm, F# etc. The pipe operator takes a value and applies it on the lambda at the right of the operator. Example

add_one = -> a { a + 1 }
add_two = -> a { a + 2 }

2 |> add_one |> add_two == 5

In combination with the >> operator, some interesting thing can be done.

2 |> add_one >> add_two

you can refactor to

add_tree = add_one >> add_two
2 |> add_tree

I currently use the then method on Object to do the equivalent. However this takes more characters and you need to put the closing bracket at the end of the line.

2.then(&add_one >> add_tree)
Actions

Also available in: Atom PDF

Like0
Like0Like1Like0