Module: LambdaDriver::Composable
Class Method Summary collapse
Instance Method Summary collapse
-
#>>(g) ⇒ Object
g compose self.
-
#compose(g) ⇒ Object
Returns new lambda which composed self and given function.
Class Method Details
.included(klass) ⇒ Object
24 25 26 |
# File 'lib/lambda_driver/composable.rb', line 24 def self.included(klass) klass.send(:alias_method, :<<, :compose) end |
Instance Method Details
#>>(g) ⇒ Object
g compose self
20 21 22 |
# File 'lib/lambda_driver/composable.rb', line 20 def >>(g) g.to_proc << self end |
#compose(g) ⇒ Object
Returns new lambda which composed self and given function. A composed proc called with args, executes ‘self.(g(*args)).
f = lamdba{|x| x.to_s }
g = lambda{|y| y.length }
h = f compose g
h.(:hoge) # => 4
This method is aliased as ‘<<`.
f << g # => f.compose(g)
15 16 17 |
# File 'lib/lambda_driver/composable.rb', line 15 def compose(g) lambda{|*args| self.to_proc.call(g.to_proc.call(*args)) } end |