Задачи. Лямбда выражения, аргументы функций

Напоминание, лекция прошлого семестра: Лямбда выражения, продвинутая работа с аргументами функций.

  1. Одна задача разбита на несколько шагов, вы можете посылать частичные решения.
    • Реализуйте функцию graph(f), которая получает на вход функцию f, вызывает ее от значений от 0 до 10 и распечатывает в следующем виде: (пример для функции $f(x) = x^2$) f(0) = 0 f(1) = 1 f(2) = 4 ... f(10) = 100
    • Вызовите эту функцию, передав в неё лямбда выражение
    • Вызовите эту функцию, передав в неё имя обычной функции
    • Добавьте аргумент n в функцию graph, который показывает, что распечатывать надо значения от 0 до n (включительно). Этот аргумент должен иметь значение 10 по-умолчанию
    • Добавьте еще один необязательный аргумент m в функцию graph, если указаны два аргумента, например, graph(f, 10, 20), то распечатывать значения нужно от 10 до 20 (включительно)
  2. Реализуйте функцию eat() от произвольного числа аргументов. Если среди переданных аргументов есть четное число, она распечатывает ok, если нет, она распечатывает I like evens. Например, eat(11, 33, 55, 10, 77, 99) распечатывает ok, а eat(1, 33, 555, 7777) распечатывает I like evens.
  3. Реализуйте функцию repeat, которая получает произвольные именованные аргументы. Для каждого из них указано целое положительное число. Функция возвращает список из аргументов, но повторяет каждый указанное число раз: repeat(hello=2, cat=3) должно вернуть ['hello', 'hello', 'cat', 'cat', 'cat'].