module Bluepine::Functions
FP helpers
Public Instance Methods
compose(*fns)
click to toggle source
Compose functions compose : (a -> b) -> (b -> c) -> a -> c
# File lib/bluepine/functions.rb, line 25 def compose(*fns) ->(v) { fns.reduce(fns.shift.(v)) do |x, f| x.respond_to?(:compose) ? x.compose(f) : f.(x) end } end
compose_result(*fns)
click to toggle source
A composition that early returns value f : a -> b g : a -> c
# File lib/bluepine/functions.rb, line 36 def compose_result(*fns) ->(v) { fns.reduce(fns.shift.(v)) do |x, f| x ? x : f.(v) end } end
curry(method, *args)
click to toggle source
Curry instance method
# File lib/bluepine/functions.rb, line 45 def curry(method, *args) self.method(method).curry[*args] end
result(value, errors = nil)
click to toggle source
# File lib/bluepine/functions.rb, line 19 def result(value, errors = nil) Result.new(value, errors) end