Интернет Университет информационных технологий Твой путь к знаниям
  Искать!
Курсы | Обучение | Школа | Магазин | Общение | Новости | Помощь

поддержка курса Введение в программирование на Лиспе
информация [+] Авторы: Л.В. Городняя, Н.А. Березин


 
 
1. Лекция: Рекурсивные функции и структуры данных
Страницы: 1 | 2 | 3 | вопросы | » для печати и PDA
Если Вы заметили ошибку - сообщите нам или выделите ее и нажмите Ctrl+Enter
Целью курса является изучение языка Лисп и техники программирования на Лиспе. Первая лекция вводит общие понятия, используемые при определении языка Лисп, его реализации и применении. В центре внимания идеи символьной обработки информации и принципы функционального программирования.

Содержание

Автор языка Лисп – профессор математики и философии Джон Мак-Карти, выдающийся ученый в области искусственного интеллекта. Он предложил проект языка Лисп, идеи которого возбудили не утихающие до наших дней дискуссии о сущности программирования. Сформулированная Джоном Мак-Каpти (1958) концепция символьной обработки информации восходит к идеям Чёрча и других видных математиков конца 20-ых годов предыдущего века. Выбирая лямбда-исчисление как основную модель, Мак-Карти предложил функции рассматривать как общее понятие, к которому могут быть сведены все другие понятия программирования [1].

Определение 1.1

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

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

  • Алгоритм (поиск наибольшего общего делителя).
  • Таблица (сложение или умножение для целых чисел).
  • Процесс (взвешивание или измерение).
  • Устройство (вольтметр, термометр, часы)
  • Формализованный текст (процедура, подпрограмма, макрос и т.п.).

Различаются обозначения и определения соответствия между аргументами и результатами. Интуитивно понятие функции содержит концепцию времени: сначала вычисляются аргументы в порядке перечисления, затем строится значение функции - ее результат. Процессы обработки информации организуются как применение функций к их аргументам - вычисления.

Определение 1.2

Вычисление – процесс решения задачи, сводимой к обработке чисел, кодов или символов, рассматриваемых как модели реальных объектов.

Соответствие между моделью и объектом часто называют интерпретацией.

Список – основная структура данных языка Лисп. Список может быть пустым или содержать произвольное число объектов любой природы. Пустой список используется в качестве истинностного значения, "ложь" - все, что отлично от пустого списка может выполнять роль значения "истина".

Определение1.3

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

Кроме списков в языке Лисп имеются более общие структуры данных – символьные выражения (S-выражения), реализуемые как двоичные деревья, а Лисп-системы поддерживают обработку различных специальных структур данных, таких как вектора, массивы, строки, хэш-таблицы, файлы, потоки ввода-вывода и др.

Определение 1.4

Двоичное дерево – это ориентированный граф, из каждой вершины которого выходит не более двух дуг.

Элементарные данные языка Лисп называются атомами. Атомы могут иметь вид имен, чисел или других объектов, неделимых базовыми средствами языка.

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

Определение 1.5

Функция называется рекурсивной, если ее определение прямо или косвенно (через другие функции ) содержит обращение к самой себе.

Дальше »
Страницы: 1 | 2 | 3 | вопросы | » для печати и PDA
 
 

Внимание! Если Вы увидите ошибку на нашем сайте, выделите её и нажмите Ctrl+Enter.
Нужна помощь?
• Забыли пароль? Вам сюда...
• Есть вопрос? Спрашивайте!
Вы можете:
• Изменить персональные данные
• Изменить параметры подписки
Интернет-магазин:
• Ваши заказы здесь
• Ваш личный счет
Курсы | Учебные программы | Учебники | Вопросы и Ответы | Форум | Новости | Помощь

Телефон: +7 (499) 253-9312, 253-9313, факс: +7 (499) 253-9310, email: info@intuit.ru
© INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование, 2003-2011
Проект Издательства "Открытые Системы".
Партнеры: РМ Телеком, KRAFTWAY COMPUTERS.
Rambler's Top100