subtraction negate single argument
This commit is contained in:
@@ -103,6 +103,10 @@ class Prelude {
|
|||||||
public static var add:Function = makeVarArgsWithArrayCheck(_add, "+");
|
public static var add:Function = makeVarArgsWithArrayCheck(_add, "+");
|
||||||
|
|
||||||
static function _subtract(values:Array<Dynamic>):Dynamic {
|
static function _subtract(values:Array<Dynamic>):Dynamic {
|
||||||
|
// with one argument, just negate:
|
||||||
|
if (values.length == 1)
|
||||||
|
return -values[0];
|
||||||
|
|
||||||
var difference:Float = values[0];
|
var difference:Float = values[0];
|
||||||
for (value in values.slice(1))
|
for (value in values.slice(1))
|
||||||
difference -= value;
|
difference -= value;
|
||||||
|
@@ -72,11 +72,11 @@ class BasicTestCase extends Test {
|
|||||||
Assert.equals(6, BasicTestCase.mySum);
|
Assert.equals(6, BasicTestCase.mySum);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testVariadicSubtract() {
|
function testSubtraction() {
|
||||||
Assert.equals(-2, BasicTestCase.myDifference);
|
_testSubtraction();
|
||||||
}
|
}
|
||||||
|
|
||||||
function testVariadicMultiply() {
|
function testMultiplication() {
|
||||||
_testMultiplication();
|
_testMultiplication();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -46,10 +46,11 @@
|
|||||||
(function _testCollect []
|
(function _testCollect []
|
||||||
(Assert.equals "[0,1,2]" (Std.string (collect (range 3)))))
|
(Assert.equals "[0,1,2]" (Std.string (collect (range 3)))))
|
||||||
|
|
||||||
// Variadic math uses haxe's Lambda.fold under the hood
|
|
||||||
(var mySum (+ 1 2 3))
|
(var mySum (+ 1 2 3))
|
||||||
|
|
||||||
(var myDifference (- 5 4 3))
|
(function _testSubtraction []
|
||||||
|
(Assert.equals -2 (- 5 4 3))
|
||||||
|
(Assert.equals -2 (- 2)))
|
||||||
|
|
||||||
(function _testMultiplication []
|
(function _testMultiplication []
|
||||||
(Assert.equals 60 (* 2 5 6))
|
(Assert.equals 60 (* 2 5 6))
|
||||||
|
Reference in New Issue
Block a user