Created
September 7, 2021 15:56
-
-
Save robenaro/6ec28b82dd04322a1ab249b6bb70bc95 to your computer and use it in GitHub Desktop.
Exam
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
1. Зачем разделять код и скрипты по разным файлам? | |
""" | |
""" | |
подсчитать число положительных и отрицателдьных чисел в массиве | |
""" | |
""" | |
проверить функцию подсчета положительных и отрицательных чисел в массиве | |
""" | |
""" | |
2. Система типов: приведение к типам, | |
конкретные и абстрактные типы, | |
множественная диспетчеризация | |
""" | |
""" | |
написать тип, параметризованный другим типом | |
""" | |
""" | |
написать функцию для двух аругментов, не указывая их тип | |
и функцию для двух аргментов с конкретными типами, запустить их | |
""" | |
""" | |
абстрактный тип - ключевое слово? | |
примитивный тип - ключевое слово? | |
композитный тип - ключевое слово? | |
""" | |
""" | |
написать один абстрактный тип и два его подтипа (1 и 2) | |
написать функцию над абстрактным типом, и функцию над её подтипом-1 | |
выполнить функции над объектами подтипов 1 и 2 и объяснить результат | |
(функция выводит произвольный текст в консоль) | |
""" | |
""" | |
что происходит? | |
""" | |
""" | |
3. Функции: лямбды и | |
обычные функции, | |
переменное количество аргументов, | |
аргументы ключ-значение, | |
кортежи | |
""" | |
""" | |
пример обычной функции | |
""" | |
""" | |
пример лямбда-функции | |
""" | |
""" | |
пример функции с переменным количеством аргументов | |
""" | |
""" | |
пример функции с именованными аргументами | |
""" | |
""" | |
функции с переменным кол-вом именованных аргументов | |
""" | |
""" | |
передать кортеж в функцию, которая принимает на вход несколько аргументов | |
присвоить кортеж результату функции, которая возвращает несколько аргументов | |
деструктуризация кортежа - в набор переменных | |
""" | |
""" | |
4. loop fusion, broadcast, filter, map, reduce | |
""" | |
""" | |
перемножить все элементы массива | |
с помощью reduce | |
""" | |
""" | |
написать функцию от одного аргумента и запустить ее по всем элементам массива | |
с помощью точки | |
c помощью map | |
""" | |
""" | |
перемножить вектор-строку [1 2 3] на вектор-столбец [10,20,30] и объяснить результат | |
""" | |
""" | |
в одну строку выбрать из массива [1, -2, 2, 3, 4, -5, 0] только четные и положительные числа | |
""" | |
""" | |
в одну строку выбрать из массива [1, -2, 2, 3, 4, -5, 0] только четные и положительные числа | |
""" | |
""" | |
4. loop fusion, broadcast, filter, map, reduce | |
""" | |
""" | |
перемножить все элементы массива | |
с помощью reduce | |
""" | |
""" | |
написать функцию от одного аргумента и запустить ее по всем элементам массива | |
с помощью точки | |
c помощью map | |
""" | |
""" | |
перемножить вектор-строку [1 2 3] на вектор-столбец [10,20,30] и объяснить результат | |
""" | |
""" | |
в одну строку выбрать из массива [1, -2, 2, 3, 4, -5, 0] только четные и положительные числа | |
""" | |
""" | |
в одну строку выбрать из массива [1, -2, 2, 3, 4, -5, 0] только четные и положительные числа | |
""" | |
""" | |
5. Свои типы данных на общих интерфейсах, в частности AbstractArray | |
""" | |
""" | |
можно объяснить на примерах готовых пакетов: | |
StructArrays, CircularBuffers, OffsetBuffers | |
""" | |
""" | |
6. Тесты: как проверять функции? | |
""" | |
""" | |
написать тест для функции | |
""" | |
""" | |
7. Дебаг: как отладить функцию по шагам? | |
""" | |
""" | |
написать и отладить функцию по шагам | |
""" | |
""" | |
8. Профилировщик: как оценить производительность функции? | |
""" | |
""" | |
оценить производительность функции | |
""" | |
""" | |
9. Отличия от матлаба: приращение массива и предварительная аллокация? | |
""" | |
""" | |
написать функцию, которая аллоцирует новый массив, | |
написать функцию, которая пишет в предварительно аллоцированный массив | |
""" | |
""" | |
10. Модули и функции: зачем оборачивать функции внутрь модуля, как их экспортировать и пользоваться вне модуля? | |
""" | |
""" | |
написать модуль с двумя функциями, | |
экспортировать одну из них, | |
воспользоваться обеими функциями вне модуля | |
""" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment