babel-plugin-syntax-monadic-comprehensions
v2.0.0
Published
A plugin for Babel 7 that (mostly) transforms for comprehensions to flatMaps/maps.
Downloads
13
Maintainers
Readme
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
andYield
are imported also exportflatMap
andmap
operators.
License
MIT (c) 2015