Введение в теорию программирования. Функциональный подход



             

Задание


Сформулируйте формальную постановку задачи, запишите правила вывода и реализуйте программу на SML в соответствии с вариантом исполнения.

Реализовать на языке SML следующие рекурсивные функции:

  1. Предшествования для целых чисел.
  2. Следования для целых чисел.
  3. Суммы первых N чисел натурального ряда.
  4. Произведения первых N чисел натурального ряда (факториала).
  5. Вычисления чисел Фибоначчи.
  6. Решения задачи о размещении 8 ферзей на шахматной доске 8х8 так, чтобы никакой из них они не "бил" другого.
  7. Решения задачи о "Ханойских башнях".
  8. Упорядочения массива.
  9. Обхода двоичного дерева слева.
  10. Обхода двоичного дерева справа.
  11. "Балансировки" двоичного дерева
  12. Подсчета количества элементов двоичного дерева.
  13. Упорядочения списка.
  14. Вставки элементов в упорядоченный список.
  15. Вставки элементов в "сбалансированное" двоичное дерево.
  16. Наибольшего общего делителя по алгоритму Евклида.
  17. Суммы N элементов арифметической прогрессии.
  18. Суммы N элементов геометрической прогрессии.
  19. Решения задачи о ханойских башнях (перемещение диска со стержня А на стержень В отображать посредством вывода текста "А->В").
  20. Суммы элементов списка.
  21. Инвертирования списка.
  22. Произведения с использованием только функции сложения.
  23. Суммы с использованием только функции прибавления единицы.




Содержание  Назад