do-syntax

0.1.2 • Public • Published

Haskell like do-syntax for JavaScript

##Example

###List monad

var
doSyntax = require('do-syntax'),

xs = [1,2],
ys = eval(doSyntax.syntax)(doSyntax.listM, function () {
    x1 <- xs;
    x2 <- xs;
    return pure([x1, x2]);
});

console.log(ys); // [[1,1],[1,2],[2,1],[2,2]]

###Async Monad

var
fs = require('fs'),
doSyntax = require('do-syntax');

eval(doSyntax.syntax)(doSyntax.asynxM, function () {
    file1 <- async(fs.readFile)('file1.txt', 'UTF-8');
    file2 <- async(fs.readFile)('file2.txt', 'UTF-8');
    console.log(file1 + file2);
    return pure();
})(function (err) {
    //error callback
    console.log(err);
});

Readme

Keywords

none

Package Sidebar

Install

npm i do-syntax

Weekly Downloads

1

Version

0.1.2

License

MIT

Last publish

Collaborators

  • alucky0707