From 7272c971e798602c4825310b0c5dabd6c1a7d310 Mon Sep 17 00:00:00 2001 From: xrstf Date: Tue, 5 Dec 2023 16:29:38 +0100 Subject: [PATCH] remove accidental introduced integer-division function --- pkg/builtin/functions.go | 11 +++++------ pkg/builtin/lists_test.go | 6 +++--- pkg/builtin/math.go | 12 ------------ 3 files changed, 8 insertions(+), 21 deletions(-) diff --git a/pkg/builtin/functions.go b/pkg/builtin/functions.go index 3c9c645..5b0365a 100644 --- a/pkg/builtin/functions.go +++ b/pkg/builtin/functions.go @@ -43,11 +43,10 @@ var ( "gte?": functions.NewBuilder(gteCoalescer).WithDescription("returns a >= b").Build(), } - // aliases to make bang functions nicer (add! vs +!) - addRudiFunction = functions.NewBuilder(numberAddFunction, integerAddFunction).WithDescription("returns the sum of all of its arguments").Build() - subRudiFunction = functions.NewBuilder(numberSubFunction, integerSubFunction).WithDescription("returns arg1 - arg2 - .. - argN").Build() - multiplyRudiFunction = functions.NewBuilder(numberMultFunction, integerMultFunction).WithDescription("returns the product of all of its arguments").Build() - divideRudiFunction = functions.NewBuilder(numberDivFunction, integerDivFunction).WithDescription("returns arg1 / arg2 / .. / argN").Build() + addRudiFunction = functions.NewBuilder(integerAddFunction, numberAddFunction).WithDescription("returns the sum of all of its arguments").Build() + subRudiFunction = functions.NewBuilder(integerSubFunction, numberSubFunction).WithDescription("returns arg1 - arg2 - .. - argN").Build() + multiplyRudiFunction = functions.NewBuilder(integerMultFunction, numberMultFunction).WithDescription("returns the product of all of its arguments").Build() + divideRudiFunction = functions.NewBuilder(numberDivFunction).WithDescription("returns arg1 / arg2 / .. / argN (always a floating point division, regardless of arguments)").Build() MathFunctions = types.Functions{ "+": addRudiFunction, @@ -65,7 +64,7 @@ var ( lenRudiFunction = functions.NewBuilder(stringLenFunction, vectorLenFunction, objectLenFunction).WithDescription("returns the length of a string, vector or object").Build() appendRudiFunction = functions.NewBuilder(appendToVectorFunction, appendToStringFunction).WithDescription("appends more strings to a string or arbitrary items into a vector").Build() prependRudiFunction = functions.NewBuilder(prependToVectorFunction, prependToStringFunction).WithDescription("prepends more strings to a string or arbitrary items into a vector").Build() - reverseRudiFunction = functions.NewBuilder(reverseVectorFunction, reverseStringFunction).WithDescription("reverses a string or the elements of a vector").Build() + reverseRudiFunction = functions.NewBuilder(reverseStringFunction, reverseVectorFunction).WithDescription("reverses a string or the elements of a vector").Build() containsRudiFunction = functions.NewBuilder(stringContainsFunction, vectorContainsFunction).WithDescription("returns true if a string contains a substring or a vector contains the given element").Build() StringsFunctions = types.Functions{ diff --git a/pkg/builtin/lists_test.go b/pkg/builtin/lists_test.go index 1d1ddcc..c8873d5 100644 --- a/pkg/builtin/lists_test.go +++ b/pkg/builtin/lists_test.go @@ -315,7 +315,7 @@ func TestRangeFunction(t *testing.T) { }, { // multiple expressions that use a common context - Expression: `(range [1 2 3] [a] (set! $foo $a) (+ $foo 3))`, + Expression: `(range [1 2 3] [a] (do (set! $foo $a) (+ $foo 3)))`, Expected: int64(6), }, { @@ -442,12 +442,12 @@ func TestMapFunction(t *testing.T) { }, { // last expression controls the result - Expression: `(map [1 2 3] [val] (+ $val 3) "foo")`, + Expression: `(map [1 2 3] [val] (do (+ $val 3) "foo"))`, Expected: []any{"foo", "foo", "foo"}, }, { // multiple expressions that use a common context - Expression: `(map [1 2 3] [val] (set! $foo $val) (+ $foo 3))`, + Expression: `(map [1 2 3] [val] (do (set! $foo $val) (+ $foo 3)))`, Expected: []any{int64(4), int64(5), int64(6)}, }, { diff --git a/pkg/builtin/math.go b/pkg/builtin/math.go index f645acf..a699911 100644 --- a/pkg/builtin/math.go +++ b/pkg/builtin/math.go @@ -60,18 +60,6 @@ func numberMultFunction(base ast.Number, extra ...ast.Number) (any, error) { return product, nil } -func integerDivFunction(base int64, extra ...int64) (any, error) { - for _, num := range extra { - if num == 0 { - return nil, errors.New("division by zero") - } - - base /= num - } - - return base, nil -} - func numberDivFunction(base ast.Number, extra ...ast.Number) (any, error) { result := base.MustToFloat()