class Monadist::Continuation

Public Class Methods

new(&block) click to toggle source
# File lib/monadist/continuation.rb, line 4
def initialize(&block)
  @block = block
end
unit(value) click to toggle source
# File lib/monadist/continuation.rb, line 26
def self.unit(value)
  new { |next_block| next_block.call value }
end

Public Instance Methods

bind(&block) click to toggle source
# File lib/monadist/continuation.rb, line 10
def bind(&block)
  self.class.new do |next_block|
    run do |value|
      block.call(value).run(&next_block)
    end
  end
end
run(&block) click to toggle source
# File lib/monadist/continuation.rb, line 20
def run(&block)
  @block.call(block || lambda { |value| value })
end