"""Анонимная функция lambda
елси нужно создать маленкую функцию то ее можно
создать через lamda, тогда например ее удобно использовать в цикле.
lambda -очень простая замена функции которая нужна на 1 раз
"""

#например

x = lambda: print('Gogogo') #создали анонимную функцию в одну строку
x() #вызвали анонимную функцию


# lambda может принимать парамтры как и большая функция

d = lambda x,y: x + y #означает что анонимная функция будет в
# данном случае принимать 2 параметра и возращать сумму
print(d(513,7))#вызываем как обычную функцию с параметрами и  на печать

""" функция map передает на обработку функции второй элемент
итогом работы является список

если выражение помещается на одной строке и понятно что оно делает, это возможность использовать map и lambda
в противном случае не стоит
"""

def summ(value):
    return value +5
m = map(summ,[1, 5 ,11, 22 ,14])

# для печати нужно явным образом приводить результат функции map  к списку
print(list(m))

# умножим на 10 значения списка посклольку lambda это не именованая функция
# используем lambda (map будет последовательно передавать значения из переданного списка
# в данном случае [3,8,11,99]
s = map(lambda x: x * 10,[3,8,11,99])

print(list(s))

#возведем в  квадрат значения списка()

quadro=list(map(lambda x: x**2, [0,2,4,6,8,9]))

print(quadro,quadro[3])

