trampoline-js
Transforms recursion ⟹ loop
Usage
Install from npm
npm install trampoline-js
let trampoline done more = const times = { // optional accumulators & user input const _times = n <= 0 // on done (base condition) ? // continuation as thunks // takes continuation function and params : // build trampoline by passing recursive function and optional initial objects return } // > '*****'
API
function trampoline(genFun, [args])
trampoline
takes generate/recursive function and optional arguments (optional). it returns a function of formfunction ([arguments]) {}
.
On invoking returned function,
genFun
will be called withargs
followed by caller suppliedarguments
.
genFun
should return eitherdone
(a wrapper for base case) ormore
(a wrapper function for continuation function). Otherwise, 'Invalid continuation' Error will be thrown.
function more(fun, [args])
more
should provide continuation function as first parameter and optional args.
function cont(fun, [args])
Alias for
more
.
function done(result)
done
is a base case wrapper which takes terminal object andresult
will be returned as output.
License
This plugin is licensed under the MIT license.
Copyright (c) 2016 Prince John Wesley