Module: Rupture::Fn
Instance Method Summary collapse
- #<<(partials) ⇒ Object
- #>>(partials) ⇒ Object
- #arity ⇒ Object
- #block(&block) ⇒ Object
- #comp(fn) ⇒ Object (also: #*)
- #complement ⇒ Object (also: #-@)
-
#fnil(*defaults) ⇒ Object
def apply(*args) last = args.pop call(*F.concat(args, last)) end.
- #partial(*partials) ⇒ Object
- #rpartial(*partials) ⇒ Object
- #to_proc ⇒ Object
Instance Method Details
#<<(partials) ⇒ Object
31 32 33 |
# File 'lib/rupture/fn.rb', line 31 def <<(partials) partial(*partials) end |
#>>(partials) ⇒ Object
35 36 37 |
# File 'lib/rupture/fn.rb', line 35 def >>(partials) rpartial(*partials) end |
#arity ⇒ Object
62 63 64 |
# File 'lib/rupture/fn.rb', line 62 def arity -1 end |
#block(&block) ⇒ Object
39 40 41 42 43 |
# File 'lib/rupture/fn.rb', line 39 def block(&block) lambda do |*args| call(*args, &block) end end |
#comp(fn) ⇒ Object Also known as: *
12 13 14 15 16 |
# File 'lib/rupture/fn.rb', line 12 def comp(fn) lambda do |*args| call(fn[*args]) end end |
#complement ⇒ Object Also known as: -@
5 6 7 8 9 |
# File 'lib/rupture/fn.rb', line 5 def complement lambda do |*args| not call(*args) end end |
#fnil(*defaults) ⇒ Object
50 51 52 53 54 |
# File 'lib/rupture/fn.rb', line 50 def fnil(*defaults) lambda do |*args| call(*F.map(args, defaults) {|a,d| a.nil? ? d : a}) end end |
#partial(*partials) ⇒ Object
19 20 21 22 23 |
# File 'lib/rupture/fn.rb', line 19 def partial(*partials) lambda do |*args, &block| call(*(partials + args), &block) end end |
#rpartial(*partials) ⇒ Object
25 26 27 28 29 |
# File 'lib/rupture/fn.rb', line 25 def rpartial(*partials) lambda do |*args, &block| call(*(args + partials), &block) end end |
#to_proc ⇒ Object
56 57 58 59 60 |
# File 'lib/rupture/fn.rb', line 56 def to_proc lambda do |key| call(key) end end |