Skip to content
Haskell-style monad do-notation for Ruby
Ruby
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
spec
.gitignore
.rspec
.travis.yml
Gemfile
README.md
Rakefile
do_notation.gemspec

README.md

Haskell-style monad do-notation for Ruby

Example:

require 'do_notation'

class Array
  include Monad

  def self.unit x
    [x]
  end

  def bind &f
    map(&f).inject([], &:+)
  end
end

Array.run do
  x <- ["first", "second"]
  y <- ["once", "twice"]

  unit("#{x} cousin #{y} removed")
end

The above code returns the array:

["first cousin once removed",
 "first cousin twice removed",
 "second cousin once removed",
 "second cousin twice removed"]

For more examples, see the test suite.

Installation

gem install do_notation

By Aanand Prasad (aanand.prasad@gmail.com)

Something went wrong with that request. Please try again.