Kodomo

Пользователь

Задание

Задачи, помеченные звёздочкой, могут потребовать создания вспомогательных функций или чтения материалов за пределами расказанного на занятии.

  1. Пришлите мне ссылку на репозиторий, в котором лежат ваши программы. Решения заданий я принимаю только в виде ссылок на репозиторий. Чтобы я мог просматривать репозиторий, в нём должна быть зажата галочка public либо при создании (так было, если вы строго следовали инструкции), либо сейчас через кнопку настроек репозитория.
  2. Напишите функцию incr_all, которая берёт на вход список чисел, и возвращает список значений, на 1 больше чисел в списке. incr_all [1,2,3,2,3,1] == [2,3,4,3,4,2]

  3. Напишите функцию mul_all, которая берёт на вход число a, и список чисел xs, и возвращает список значений из списка xs, пожмноженных на число a. mul_all 2 [1,2,3] == [2,4,6]

  4. Напишите функцию trunc_all, которая берёт на вход список списков, и возвращает список из таких же списков, у каждого из которых откушена голова. Т. е. trunc_all [[1,2], [3], [4,5]] == [[2], [], [5]]

  5. Напишите функцию log2, которая берёт на вход целое число, и возвращает двоичный логарифм числа, т.е. сколько раз его нужно поделить нацело (div) на два, чтобы получить в итоге 0. log2 1 == 1; log2 2 == 2; log2 9 == 4

  6. * Напишите функцию count_ones, которая берёт на вход целое число и возвращает число единиц в двоичной записи этого числа. Вероятно, вам потребуется функция mod. count_ones 8 == 1; count_ones 7 == 3

  7. Напишите функцию append, которая берёт на вход два списка, и возвращает список, состоящий из объединения их элементов. Т.е. append [1,2] [3,4] == [1,2,3,4]