Применение предикатов pair?, list?и atom?
Определение атома.
5. ПонятиеS-выраженияи форма записи функций.
6. Типы данных вЛисп’е и понятие «бестиповость»
7. Арифметические функции
8. Логические константы, логические операции, функции и предикаты в Dr.Racket.
9. Типовые предикаты.
Функция условного выражения cond. Использование части else и #t
11. Функция условного выражения if .
12. Функция defineи понятие «связывания»
13. Функция define и определения новых функций.
Вопросы для сдачи Лаб. №2
1. Рекурсивное определение факториала.
2. Рекурсивное определение Чисел Фибоначчи.
3. Рекурсивное определение треугольника Паскаля.
4. Рекурсивное определение наибольшего общего делителя.
5. Различие рекурсивного определения и рекурсивного процесса.
6. Пример линейного рекурсивного процесса (факториал)
7. Пример итерации (наибольший общий делитель).
8. Пример «деревянной» рекурсии (Чисел Фибоначчи).
9. Пример «хвостовой» рекурсии (факториал) и «накапливающего» параметра.
10. Определение списка как «пары скобок».
11. Функций list, car, cdr, append.
12. Функция quote.
13. Функция eval.
Вопросы для сдачи Лаб. №3
1. Определение точечной пары и применение функций cons, carи cdr.
Применение предикатов pair?, list?и atom?
3. Определение списка через понятие точечной пары.
4. Определение пустого списка, nil и предиката null?
5. Понятие l–выражения и «анонимных вычислений».
6. Определение функции lambda и связывание l– списка в l–выражениях.
7. Применение функции let.
Вопросы для сдачи Лаб. №4
1. Понятие функции высшего порядка.
2. Функция (sum), выражающая функциональную концепцию суммирования.
3. Функция (acc), определяющая общую схему накопления.
4. Функционал, выражающий концепцию суммирования двух произвольных функций.
5. Функционал, выражающий концепцию композиции произвольных функций.
6. Функция (squ3), получения квадратного корня методом Герона.
7. Функция (newton-method), нахождения корней уравнения методом Ньютона.
Вопросы для сдачи Лаб. №5
1. Понятие свертки. Функции foldL и foldR.
2. Понятие отображающих функций на примере функции map.
3. Функция фильтрования filter.
4. Принцип работы функции символьного дифференцирования diff.
5. Принцип работы функции символьного упрощения. Пример функций упрощения.
6. Применение символьного дифференцирования в решении уравнений методом Ньютона.
Вопросы для сдачи Лаб. №6
1. Принцип метода абстракции данных.
2. Интерфейсные функции и их реализация в функциях конструкторе и селекторе.
3. Представление рациональных чисел точечной парой.
4. Представление рациональных чисел с помощью НОД.
5. Функциональное представление рациональных чисел.
6. Основные операции над неупорядоченными множествами.
7. Основные операции над упорядоченными множествами.
8. Представление множеств двоичными деревьями.
Вопросы для сдачи Лаб. №7
1. Функция свертки tree-fold на деревьях.
2. Понятие одноуровнего (линейного) списка, как стандартного интерфейса.
3. Методы получения линейных списков или их «спрямления».
4. Стадии функционального программирования с интерфейсом линейных списков.
5. Операции над векторами с помощью функций foldlNE и map.
6. Операции над матрицами как действия с линейными списками.
7. Комбинаторные функции: reverse, suffixes и prefixes.
Вопросы для сдачи Лаб. №8
1. Функции подсчета сочетаний и перестановок для «аморфного» списка.
2. Особенности «безумной» сортировки линейного списка.
3. Стандартный интерфейс к конечным автоматам. Пример КА.
4. Частичное применение функции. Пример.
5. Карирование функций. Пример.
Вопросы для сдачи Лаб. №9
- Функции организации и работы с потоками: head, tail и cons-stream.
- Понятие «задержанных» вычислений. Смысл функций delay и force.
- Сравнение целочисленных списков и потоков на примере получения элемента с заданным порядковым номером.
Вопросы для сдачи Лаб. №10
1. Бесконечный поток. Определение. Пример.
2. Бесконечный поток – числа Фибоначчи.
3. Ленивые вычисления. Сравнительное определение.
Вопросы для сдачи Лаб. №11
4. Клоз. Клауза Хорна. Факт. Правило. Запрос.
5. Метод резолюций. Резольвента. Комплементарные пары.
6. Исполнение программ на Прологе. Прямая трассировка, поиск с возвратом.
7. Задача о холостяке.
Вопросы для сдачи Лаб. №12
1. Задача о Ханойской башне.
2. Свойства переменных в Пролог-программах.
3. Сравнительная характеристика декларативной и процедурной семантик.
4. Понятие унификации. Унификация констант.
5. Унификация переменных
6. Унификация структур.
7. Понятие списков. Унификация списков.
8. Операции на списках: поиск заданного элемента.
9. Операции на списках: создание списка.
10. Операции на списках: вычеркивание и замена элементов списка
Вопросы для сдачи Лаб. №13
1. Задачи на списках: нахождение пути в связанном неориентированном графе.
2. Задачи на списках: синтаксический анализатор на ДКА.