You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

m-signal

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

m-signal - npm Package Compare versions

Comparing version

to
0.1.0

10

lib.js

@@ -10,5 +10,5 @@ /*

signal :: <T> ((T => void) => void) => Signal<T>;
signal.lift :: <U> U => Signal<U>
signal.unit :: <U> U => Signal<U>
signal.combine :: <T, U,...> [Signal<T>, Signal<U>,...] => Signal<[T, U,...]>
signal.flift :: <T, U,...,R> ((T, U,...) => R) => ((Signal<T>, Signal<U>,...) => Signal<R>)
signal.lift :: <T, U,...,R> ((T, U,...) => R) => ((Signal<T>, Signal<U>,...) => Signal<R>)
*/

@@ -75,3 +75,3 @@

signal.lift = function(x) {
signal.unit = function(x) {
return signal(function(broadcast) { broadcast(x); });

@@ -87,6 +87,6 @@ };

}).apply(s);
}, signal.lift([]));
}, signal.unit([]));
};
signal.flift = function(f) {
signal.lift = function(f) {
return function(/*...ss*/) {

@@ -93,0 +93,0 @@ return signal.combine.apply(null, arguments)

{
"name": "m-signal",
"version": "0.0.0",
"version": "0.1.0",
"description": "Monadic signals for asynchronous and reactive programming",

@@ -5,0 +5,0 @@ "main": "lib.js",

@@ -11,3 +11,3 @@ #m-signal

**signal.lift(value)**
**signal.unit(value)**

@@ -20,3 +20,3 @@ Creates a signal with `value` as its only value. (Part of being a monad, and equivalent to monadic `return`.)

**signal.flift(f)**
**signal.lift(f)**

@@ -62,5 +62,5 @@ Takes a function and returns an equivalent where each argument and the return value are all signals containing the same type as the original function.

signal :: <T> ((T => void) => void) => Signal<T>;
signal.lift :: <U> U => Signal<U>
signal.unit :: <U> U => Signal<U>
signal.combine :: <T, U,...> [Signal<T>, Signal<U>,...] => Signal<[T, U,...]>
signal.flift :: <T, U,...,R> ((T, U,...) => R) => ((Signal<T>, Signal<U>,...) => Signal<R>)
signal.lift :: <T, U,...,R> ((T, U,...) => R) => ((Signal<T>, Signal<U>,...) => Signal<R>)
```

@@ -67,0 +67,0 @@

@@ -25,13 +25,13 @@ var tape = require('tape');

shouldProduce(t,
signal.lift(2).bind(function(x) { return countTo(x, 0); }),
signal.unit(2).bind(function(x) { return countTo(x, 0); }),
[0,1,2],
"bind(lift(a), f) <=> f(a)");
"bind(unit(a), f) <=> f(a)");
shouldProduce(t,
countTo(2, 0).bind(signal.lift),
countTo(2, 0).bind(signal.unit),
[0,1,2],
"bind(m, lift) <=> m");
"bind(m, unit) <=> m");
var sDouble = function(x) { return signal.lift(x*2); };
var sInc = function(x) { return signal.lift(x+1); };
var sDouble = function(x) { return signal.unit(x*2); };
var sInc = function(x) { return signal.unit(x+1); };

@@ -62,23 +62,23 @@ shouldProduce(t,

shouldProduce(t,
signal.lift(function(x) { return x; }).apply(countTo(2, 0)),
signal.unit(function(x) { return x; }).apply(countTo(2, 0)),
[0,1,2],
"apply(lift(x => x), s) <=> s");
"apply(unit(x => x), s) <=> s");
var sDouble = signal.lift(function(x) { return x*2; });
var sInc = signal.lift(function(x) { return x+1; });
var sDouble = signal.unit(function(x) { return x*2; });
var sInc = signal.unit(function(x) { return x+1; });
shouldProduce(t,
signal.lift(function(f) { return function(g) { return function(x) { return f(g(x)); }; }; })
signal.unit(function(f) { return function(g) { return function(x) { return f(g(x)); }; }; })
.apply(sDouble).apply(sInc).apply(countTo(2, 0)),
[2, 4, 6],
"lift(comp).apply(s).apply(t).apply(u) <=> s.apply(t.apply(u))");
"unit(comp).apply(s).apply(t).apply(u) <=> s.apply(t.apply(u))");
shouldProduce(t,
sDouble.apply(signal.lift(2)),
sDouble.apply(signal.unit(2)),
[4],
"lift(f).apply(lift(x)) <=> lift(f(x))");
"unit(f).apply(unit(x)) <=> unit(f(x))");
shouldProduce(t,
signal.lift(function(f) { return f(2); }).apply(sDouble),
signal.unit(function(f) { return f(2); }).apply(sDouble),
[4],
"lift(f => f(x)).apply(s) <=> s.apply(lift(x))");
"unit(f => f(x)).apply(s) <=> s.apply(unit(x))");
});

@@ -100,5 +100,5 @@

shouldProduce(t,
signal.flift(function(a, b) { return a + b*3; })(countTo(2, 0), countTo(2, 300)),
signal.lift(function(a, b) { return a + b*3; })(countTo(2, 0), countTo(2, 300)),
[0, 1, 2, 5, 8],
"flift");
"lift");
});

Sorry, the diff of this file is not supported yet