public
Description: Haskell-style monad do-notation for Ruby
Homepage:
Clone URL: git://github.com/aanand/do_notation.git
README.rdoc

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([]){ |a,b| a+b }
      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 -s http://gemcutter.org

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