babel-plugin-syntax-monadic-comprehensions

2.0.0 • Public • Published

Babel Syntax Monadic For Support

This is a plugin for Babel 7 that is meant to replicate Scala's for comprehension or haskell's do syntax.

Babel >= 7.x

{
  "plugins": [
    "babel-plugin-syntax-monadic-comprehensions",
  ]
}

Installation & Usage

$ npm install --save-dev babel-plugin-syntax-monadic-comprehensions

Add the following line to your .babelrc file:

{
    "plugins": ["babel-plugin-syntax-monadic-comprehensions"]
}

This will transform this kind of code:

import Identity, { For, Yield } from './Identity'

const comp = For(() => {
    const a = Yield(Identity.pure(1))
    const b = Yield(Identity.pure(1))
    return a + b
})

// => Identity(2)

in this code:

import { flatMap, map } from "./Identity";
import Identity, { For, Yield } from './Identity';

const comp = flatMap(Identity.pure(1), a => {
    return map(Identity.pure(1), b => {
    return a + b;
    });
});

// => Identity(2)

Where Identity is the identity monad instance.

note Assumes that the module from which For and Yield are imported also export flatMap and map operators.

License

MIT (c) 2015

Package Sidebar

Install

npm i babel-plugin-syntax-monadic-comprehensions

Weekly Downloads

1

Version

2.0.0

License

MIT

Unpacked Size

147 kB

Total Files

7

Last publish

Collaborators

  • grayfox