Module: Rupture::Fn

Included in:
Array, Hash, Method, Proc, Set, Symbol
Defined in:
lib/rupture/fn.rb

Instance Method Summary collapse

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

#arityObject



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

#complementObject 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

def apply(*args)

last = args.pop
call(*F.concat(args, last))

end



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_procObject



56
57
58
59
60
# File 'lib/rupture/fn.rb', line 56

def to_proc
  lambda do |key|
    call(key)
  end
end