Смекни!
smekni.com

Информационные технологии 2 5 (стр. 11 из 11)

3) Применить ко всем - функция получающая в качестве параметров одну функцию. Она обозначается как α . α (f,(2,3,4)).

42. Основные понятия языка LISP.

Типы и структура данных.

Существует 2 типа данных:

-атомы - символы языка, первичные данные;

-список - набор атомов или подсписков, заключенных в скобки.

(ABCD) -список.

(A(BC)D(E(FG))) – вложенный список.

Списки хранятся в виде односвязанных структур, каждый узел которой имеет два указателя. Первый указатель представляет собой атом, ссылающийся на его представление, второй указатель является ссылкой на следующий элемент списка. При создании языка Lisp необходимо было создать систему обозначений, позволяющих выражать функцию и данные одним способом. Для этого стали использовать Польскую запись.

Пример:

(Имя_функции аргумент 1 ... аргументN)

Пример записи новой функции: (defun cube(x) (*х х х); Элементарные функции: +-*/ eval - вызывается для выполнения действия прочитать, вычислить, записать.

Предикатные функции: =% о „ >, <, <=, >=

^

EVEN? - чётное ли число

ODD? - нечётное число

ZERO? - равно ли нулю

Для определения безымянной функции используется лямбда- исчисления. Лямбда выражения- применяются для связи функций.

Также была введена универсальная функция «EVAL», способная вычислять любую другую функцию.

Функция управления потоком COND - оператор многовариантного ветвления.

Пример:

(cond (предикат1 выраж(выраж))

(предикатТ выраж(выраж))) Применение функциональных языков:

1)В текстовых редакторах для обработки списков (EMACS) - Lisp, scheme. 2)web-server (www.lisp.com).

43. Основы логического программирования.

ЛП - это программирование основанное на символьной логике.

Основа данных языков - формальная логика, использующая понятия:

1) Высказывание - логическое утверждение, которое может быть истинным или ложным и состоит из объектов и отношения между ними.

2) Символьная логика - выражение высказываний, выражение отношения между высказываниями, описание специфики выводов новых высказываний.

Вид символьной логики, использующейся в логическом программировании, называется счислением предикатов. Высказывания:

- Простейшие высказывания (атомарные), состоят из составных термов (элемент математических отношений, записанных в виде математических функций). Составной терм включает:

1) функтор - функциональный символ, называющий отношения.

2) упорядоченный список параметров.

Составные высказывания. Имеют несколько атомарных высказываний, связанных логическим оператором.

Виды логических операторов:

Исчисление предикатов - больше ориентировано на автоматическое доказательство теорем. Основа - резолюция (правило логического вывода, позволяющее вычислять выводимые высказывания по заданным высказываниям).

Процесс определения полезных значений переменных называется унификацией. Временное присваивание значений переменным называется конкретизацией.

Важное свойство - разложение. Это способность обнаруживать любое противоречие в заданной совокупности высказываний.

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

44. Основные понятия языка Prolog .

Термы - constania, переменная или структура.

Константы - атом или целое число.

Переменная - любая строка букв, цифр, символов подчеркивания, начинающиеся с прописной буквы.

Структура - атомарное высказывание исчисления предикатов.

Фунигор (список параметров).

Факты - простые высказывания, которые предполагаются истинными.

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

Конъюнкция - в языке Prolog структуры, определяющие высказывание в конъюнкции, разделяются запятыми.

Дизъюнкция - записывается (:-)

Цель - высказывания, которое система должна доказать или опровергнуть.

Структура программы на Prolog. constans

<описание констант> domains

<описание доменов> datebase <описание предикатов динам. БД> predicates

<описание предикатов>

clauses

<утверждения> goal

<целевое утверждение>

Пример программы спутник

domains planeta=symbol

predicates vrash(«3емля», «Солнце») vrash(«JIyнa», «Земля») sputnik(x,y) :- vrash(x,y) Применение логического программирования: широко используется для создания экспертных систем, а также систем поддержки принятия решений.