Plato on Github
Report Home
classlib/Math/Number.js
Maintainability
127.86
Lines of code
75
Difficulty
12.08
Estimated Errors
0.52
Function weight
By Complexity
By SLOC
SCScript.install(function(sc) { "use strict"; require("./Magnitude"); var $ = sc.lang.$; sc.lang.klass.refine("Number", function(builder) { builder.addMethod("isNumber", sc.TRUE); builder.subclassResponsibility("+"); builder.subclassResponsibility("-"); builder.subclassResponsibility("*"); builder.subclassResponsibility("/"); builder.subclassResponsibility("mod"); builder.subclassResponsibility("div"); builder.subclassResponsibility("pow"); builder.addMethod("performBinaryOpOnSeqColl", function($aSelector, $aSeqColl, $adverb) { var $this = this; return $aSeqColl.$("collect", [ $.Func(function($item) { return $item.perform($aSelector, $this, $adverb); }) ]); }); // TODO: implements performBinaryOpOnPoint builder.addMethod("rho"); builder.addMethod("theta", function() { return $.Float(0.0); }); builder.addMethod("real"); builder.addMethod("imag", function() { return $.Float(0.0); }); // TODO: implements @ // TODO: implements complex // TODO: implements polar builder.addMethod("for", { args: "endValue; function" }, function($endValue, $function) { sc.lang.iterator.execute( sc.lang.iterator.number$for(this, $endValue), $function ); return this; }); builder.addMethod("forBy", { args: "endValue; stepValue; function" }, function($endValue, $stepValue, $function) { sc.lang.iterator.execute( sc.lang.iterator.number$forBy(this, $endValue, $stepValue), $function ); return this; }); builder.addMethod("forSeries", { args: "second; last; function" }, function($second, $last, $function) { sc.lang.iterator.execute( sc.lang.iterator.number$forSeries(this, $second, $last), $function ); return this; }); }); });