Sha256: 96f2b24239f31853d8f48b3f93d02a9cecd726cc1f4c8138477570df27990d99
Contents?: true
Size: 635 Bytes
Versions: 1
Compression:
Stored size: 635 Bytes
Contents
module Functional def identity ->x{ x} end module ClassMethods def compose(*proc_chain) proc_chain = proc_chain.first if proc_chain.first.class == Array proc_chain.reduce(->(x){x}){|result,p| result.compose(p)} end end def complement lambda {|*args| not self.call(*args) } end def compose(other) lambda {|*args| call(other.call(*args)) } end def pipe(other) other.compose(self) end alias :* :compose alias :>> :pipe end class Proc; include Functional; extend Functional::ClassMethods; end class Method; include Functional; extend Functional::ClassMethods; end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
reducers-0.0.5 | lib/reducers/functional.rb |