function PureFunction (scope, func, input_computables) {
  AbstractFunctionBased.call(this, scope, func, input_computables, null, true);

  this._output_type = this._async_wrap_output(this._output_type);
}
/**
 * @constructor
 * @extends AbstractFunctionBased
 * @param {Scope} scope The scope that will contain this PureFunction Computable.
 * @param {function} func The function to be used for the pure function.
 * @param {Array.<Computable>} input_computables The Computables to use as inputs for the PureFunction.
 */
@constructor
@extends AbstractFunctionBased
@param {Scope} scope The scope that will contain this PureFunction Computable.
@param {function} func The function to be used for the pure function.
@param {Array.} input_computables The Computables to use as inputs for the PureFunction.
@constructor @extends AbstractFunctionBased @param { Scope } scope The scope that will contain this PureFunction Computable . @param { function } func The function to be used for the pure function . @param { Array . } input_computables The Computables to use as inputs for the PureFunction .
function PureFunction (scope, func, input_computables) {
  AbstractFunctionBased.call(this, scope, func, input_computables, null, true);
  this._output_type = this._async_wrap_output(this._output_type);
}
function PureFunction ( scope , func , input_computables ) { AbstractFunctionBased . call ( this , scope , func , input_computables , null , true ) ; this . _output_type = this . _async_wrap_output ( this . _output_type ) ; }
@constructor
 @extends AbstractFunctionBased
 @param {Scope} scope The scope that will contain this PureFunction Computable.
@constructor @extends AbstractFunctionBased @param { Scope } scope The scope that will contain this PureFunction Computable .