[ruby-core:81395] [Ruby trunk Feature#13600] yield_self should be chainable/composable

From: andrew@...
Date: 2017-05-26 15:29:21 UTC
List: ruby-core #81395
Issue #13600 has been reported by avit (Andrew Vit).

----------------------------------------
Feature #13600: yield_self should be chainable/composable
https://bugs.ruby-lang.org/issues/13600

* Author: avit (Andrew Vit)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
One of the main use cases that would make `yield_self` a helpful addition is to build functional pipelines (function composition). This is currently not possible since Proc/Lambda do not handle `yield_self` in the expected way.

I believe that `callable.yield_self(&other)` should build up a composition, something like this:


```
class Proc
  def yield_self(&other)
    proc { |input| other.call( self.call(input) ) }
  end
end
```

I originally proposed an example for this using pipe `|` syntax here:

https://bugs.ruby-lang.org/issues/10095#note-22

Maybe Proc should use `|` or `&` for this syntax instead of changing `yield_self` directly.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next