# -*- coding: utf-8 -*-
# mapnreduce1.py
from functools import reduce # for reduce

def power2(x): 
    return x ** 2  

def powerk(x,k): 
     return x ** k
 
def myproduct(x,y):  # for reduce
  return x*y

# We square all numbers using map() 
numbers1 = [i for i in range(1,11)]
result = map(power2, numbers1) 
print(list(result)) 

result = map(powerk, numbers1, [4]*10 ) 
print(list(result)) 

numbers2 = [i for i in range(11,21)]
result = map(lambda x, y: x + y, numbers1, numbers2) 
print(list(result)) 

#============================================

result = reduce(myproduct, numbers1)
print(result) 

result = reduce(lambda x, y: x*y, numbers1)
print(result) 
