Sha256: 75fdea327b9d828d879c277fc655652e549985b27539801759cea8df3ecac116
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
require 'set' module Rupture module Fn def complement lambda do |*args| not call(*args) end end alias -@ complement def comp(fn) lambda do |*args| call(fn[*args]) end end alias * comp def partial(*partials) lambda do |*args| call(*(partials + args)) end end # def apply(*args) # last = args.pop # call(*F.concat(args, last)) # end def to_proc lambda do |key| self[key] end end def arity -1 end end end class Proc include Rupture::Fn end class Method include Rupture::Fn end class Symbol include Rupture::Fn def call(object = nil, *args) object.method(self)[*args] end alias [] call def arity -2 end end class Hash include Rupture::Fn alias call [] end class Array include Rupture::Fn alias call [] end class Set include Rupture::Fn def [](key) key if include?(key) end alias call [] end class Module def [](method_name, *partials) lambda do |*args| self.send(method_name, *(args + partials)) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rupture-0.1.0 | lib/rupture/fn.rb |