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