Calculate the product of all elements in an array.
```if:csharp
If the array is *null*, you should throw `ArgumentNullException` and if the array is empty, you should throw `InvalidOperationException`.

As a challenge, try writing your method in just one line of code. It's possible to have only 36 characters within your method.
```
```if:javascript
If the array is `null` or is empty, the function should return `null`.
```
```if:haskell
If the array is empty then return Nothing, else return Just product.
```
```if:php
If the array is `NULL` or empty, return `NULL`.
```
```if:python
If the array is empty or `None`, return `None`.
```
```if:ruby
If the array is `nil` or is empty, the function should return `nil`.
```
```if:crystal
If the array is `nil` or is empty, the function should return `nil`.
```
```if:groovy
If the array is `null` or `empty` return `null`.
```
```if:julia
If the input is `nothing` or an empty array, return `nothing`
```

Difficulty: introductory

Starter code:

def product(numbers):
	

Solutions:
from functools import reduce
from operator import mul


def product(numbers):
    return reduce(mul, numbers) if numbers else None

def product(numbers):
    if not numbers:
        return None
    prod = 1

    for i in numbers:
        prod *= i

    return prod

def product(numbers):
    if numbers==[] or numbers==None:
        return None
    res=1
    for i in numbers:
        res*=i
    return res

import numpy as np
def product(l):
    if not l:return None
    if 0 in l: return 0
#     l=sorted(l)
#     if len(l)<20:
#         print(l)
#     if len(l)>20:
#         print(len(l))    
    if len(l)==1:
        return l[0]
    p = 1
    for i in l:
        p *= i
    return p

from functools import reduce
from operator import __mul__
def product(numbers):
    if numbers: return reduce(__mul__, numbers) 

def product(numbers):
    if numbers == None:
        return None 
    elif numbers == []:
        return None
    
    pr = 1
    for i in numbers:
        pr *= i
    return pr    
    


def product(numbers):
    if numbers: return eval('*'.join(map(str,numbers)))

def product(numbers):
    if numbers:
        r = 1
        for i in numbers:
            r *= i
        return r


from operator import mul
from functools import reduce
def product(numbers):
    if not numbers: return None
    return reduce(mul,numbers)