From: shyouhei@... Date: 2017-05-27T01:36:54+00:00 Subject: [ruby-core:81406] [Ruby trunk Feature#13600] yield_self should be chainable/composable Issue #13600 has been updated by shyouhei (Shyouhei Urabe). I'm not sure if this should be an extension to yield_self or a separate new method. ---------------------------------------- Feature #13600: yield_self should be chainable/composable https://bugs.ruby-lang.org/issues/13600#change-65118 * 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: