From e832b30f31c56614afe689035af4e04a29e77896 Mon Sep 17 00:00:00 2001 From: Charlie Stanton Date: Fri, 21 Jul 2023 19:53:14 +0100 Subject: Adds an incredibly simple equality operator --- subex/arithmetic.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'subex/arithmetic.go') diff --git a/subex/arithmetic.go b/subex/arithmetic.go index 9e5e530..4cbc9db 100644 --- a/subex/arithmetic.go +++ b/subex/arithmetic.go @@ -156,3 +156,18 @@ func notValues(values walk.ValueList) (notted walk.ValueList, err error) { } return notted, nil } + +// Returns true if all values are equal, false if not +func equalValues(values walk.ValueList) (walk.ValueList, error) { + if len(values) == 0 { + return walk.ValueList{walk.BoolScalar(true)}, nil + } + first := values[0] + for _, value := range values[1:] { + // TODO: Refine the equality check + if value != first { + return walk.ValueList{walk.BoolScalar(false)}, nil + } + } + return walk.ValueList{walk.BoolScalar(true)}, nil +} -- cgit v1.2.3