Sha256: 66e0bc4eaa48025056a4c41f6bcf55c041e604efc09b5fac523538a1b177d02e

Contents?: true

Size: 402 Bytes

Versions: 2

Compression:

Stored size: 402 Bytes

Contents

require_relative '../function'

Dentaku::AST::Function.register(:mul, :numeric, ->(*args) {
  flatten_args = args.flatten
  if flatten_args.empty?
    raise Dentaku::ArgumentError.for(
        :too_few_arguments,
        function_name: 'MUL()', at_least: 1, given: 0
    ), 'MUL() requires at least one argument'
  end

  flatten_args.map { |arg| Dentaku::AST::Function.numeric(arg) }.reduce(1, :*)
})

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dentaku-3.4.1 lib/dentaku/ast/functions/mul.rb
dentaku-3.4.0 lib/dentaku/ast/functions/mul.rb