Skip to content

Instantly share code, notes, and snippets.

@robenaro
Created September 7, 2021 15:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save robenaro/6ec28b82dd04322a1ab249b6bb70bc95 to your computer and use it in GitHub Desktop.
Save robenaro/6ec28b82dd04322a1ab249b6bb70bc95 to your computer and use it in GitHub Desktop.
Exam
"""
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