diff --git a/LICENSE b/LICENSE index 8ce02b9..9eb37b1 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018 rxi +Copyright (c) 2020 rxi Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/lume.lua b/lume.lua index a990048..4efa3e7 100644 --- a/lume.lua +++ b/lume.lua @@ -1,7 +1,7 @@ -- -- lume -- --- Copyright (c) 2018 rxi +-- Copyright (c) 2020 rxi -- -- Permission is hereby granted, free of charge, to any person obtaining a copy of -- this software and associated documentation files (the "Software"), to deal in @@ -165,7 +165,7 @@ end function lume.isarray(x) - return (type(x) == "table" and x[1] ~= nil) and true or false + return type(x) == "table" and x[1] ~= nil end @@ -293,8 +293,8 @@ end function lume.reduce(t, fn, first) + local started = first ~= nil local acc = first - local started = first and true or false local iter = getiter(t) for _, v in iter(t) do if started then diff --git a/test/test.lua b/test/test.lua index 25ce17e..bfc1572 100644 --- a/test/test.lua +++ b/test/test.lua @@ -141,7 +141,6 @@ tests["lume.remove"] = function() testeq(t, { 2, 4, 5 }) lume.remove(t, 5) testeq(t, { 2, 4 }) - local m = { a = 1, b = 2, c = 3 } local x = lume.remove(t, 123) testeq(x, 123) end @@ -245,6 +244,7 @@ end tests["lume.reduce"] = function() local concat = function(a, b) return a .. b end local add = function(a, b) return a + b end + local any = function(a, b) return a or b end testeq( lume.reduce({"cat", "dog"}, concat, ""), "catdog" ) testeq( lume.reduce({"cat", "dog"}, concat, "pig"), "pigcatdog" ) testeq( lume.reduce({"me", "ow"}, concat), "meow" ) @@ -254,6 +254,8 @@ tests["lume.reduce"] = function() testeq( lume.reduce({}, concat, "potato"), "potato" ) testeq( lume.reduce({a=1, b=2}, add, 5), 8 ) testeq( lume.reduce({a=1, b=2}, add), 3 ) + testeq( lume.reduce({false, false, false}, any), false ) + testeq( lume.reduce({false, true, false}, any), true ) tester.test.error(lume.reduce, {}, add) end