Skip to content

Instantly share code, notes, and snippets.

@Raynos

Raynos/x.js Secret

Last active December 15, 2015 19:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Raynos/b562da97d7275ed9153c to your computer and use it in GitHub Desktop.
Save Raynos/b562da97d7275ed9153c to your computer and use it in GitHub Desktop.
// map:: (A -> B) -> Signal<A> -> Signal<B>
function map(lambda) { return function duplex(source) {
return function signal(next, end) {
signal(function(value) {
var sink = next(value)
return sink ? rest(duplex, sink) : null
}, end)
}
} }
// rest :: (Signal<A> -> Signal<B>) -> Sink<B> -> Sink<A>
function rest(duplex, sink) {
return function continuable(signal) {
sink(duplex(signal))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment