Функциональное программирование

       

Основные понятия лиспа


ЛЕКЦИЯ 1.

Введение. Основные понятия Лиспа.

Содержание



ЛИСП - язык функционального программирования.

Язык ЛИСП (LISP) был разработан в 1958 году американским

ученым Джоном Маккарти как функциональный язык, пред-

назначенный для обработки списков. ( LISt Processing).

Lisp - означает "лепетать". С появлением этого языка машина

стала пока лепетать, a не говорить по-человечески.

   

В основу языка положен серьезный математический аппарат:

  • лямбда-исчисление Черча
  • алгебра списочных структур
  • теория рекурсивных функций
  • Долгое время язык использовался узким кругом исследователей. Широкое распространение язык получил в конце 70-х - начале 80-х годов с появлением необходимой мощности вычислительных машин и соответствующего круга задач. В настоящем - Лисп одно из главных инструментальных средств систем искусственного интеллекта. Он принят как один из двух основных ЯП для министерства обороны США и постепенно вытесняет второй ЯП - АДА.

    Система AutoCAD разработана на Лиспе.

    Основные особенности Лиспа.

    До изучения языка трудно говорить об его особенностях, но

    тем не менее...

  • Представление программы и данных производится одинаково - через списки.

    Это позволяет программе обрабатывать другие программы и даже саму себя.

  • Лисп как правило является интерпретирующим языком, также как BASIC.
  • Лисп безтиповый язык, это значит что символы не связываются по умолчанию

    с каким-либо типом.

  • Лисп имеет необычный синтаксис. Из-за большего числа скобок LISP

    расшифровывают как Lots of Idiotic Silly Parentheses.

  • Программы, написанные на Лиспе во много раз короче, чем написанные на процедурных языках.
  • ЛИСП. Элементарные понятия.

    Символьные данные: выражения

    и представление данных.

    1 Выражения.

    Основу ЛИСПа составляют символьные выражения, которые

    называются S-выражениями и образуют область определения

    для функциональных программ.

    S-выражение (Simbolic expresion) - основная структура данных

    в ЛИСПе.

    (ДЖОН СМИТ 33 ГОДА) \ S-ВЫРАЖЕНИЯ ((МАША 21) (ВАСЯ 24) (ПЕТЯ 1)) /




    S-выражение
    - это либо атом, либо список.



    2 Атомы.



    Атомы
    - это простейшие объекты Лиспа, из которых

    строятся остальные структуры.

    Атомы бывают двух типов - символьные и числовые.



    Символьные атомы
    - последовательность букв и цифр,

    при этом должен быть по крайней мере один символ

    отличающий его от числа.



    ДЖОН АВ13 В54 10А



    Символьный атом или символ - это не идентификатор

    переменой в обычном языке программирования.

    Символ как правило обозначает какой либо предмет, объект

    вещь, действие.

    Символьный атом рассматривается как неделимое целое.

    К символьным атомам применяется только одна операция:

    сравнение.

    В МCL в состав символа могут входить:



    + - * / @ $ % ^ _ \ <>

    Числовые атомы
    - обыкновенные числа



    124


    -344

    4.5 3.055Е8



    Числа это константы.

    Типы чисел зависят от реализации ЛИСПа

    Атом - простейшее S-выражение.



    3 Списки.

    В ЛИСПЕ список это последовательность элементов (list).

    Элементами являются или атомы или списки.

    Списки заключаются в скобки, элементы списка разделяются

    пробелами.



    (банан)
    1 атом



    (б а н а н)
    5 атомов



    (a b (c d) e)
    4 элемента

    Таким образом список - это многоуровневая или иерархическая структура данных, в которой открывающиеся и закрывающиеся скобки находятся в строгом соответствии.



    (+ 2 3)
    3 атома



    (((((первый) 2) второй) 4) 5)
    2 элемента

    Список, в котором нет ни одного элемента, называется пустым

    списком
    и обозначается "()" или символом NIL.



    NIL
    - это и список и атом одновременно.

    Пустой список играет такую же важную роль в работе со списками,

    что и ноль в арифметике.

    Пустой список может быть элементом других списков.



    (NIL)
    ;список состоящий из атома NIL



    (())
    ;то же самое, что и (NIL)



    ((()))
    ;- " -((NIL))



    (NIL ())
    ;список из двух других списков



    4 Логические константы.

    NIL обозначает кроме этого, в логических выражениях

    логическую константу "ложь" (false).

    Логическое "да"(true) задается символом "Т".

    Атомы и списки - это символьные выражения или S-выражения.

    Соотношение рассмотренных основных типов ЛИСПА поясняет

    диаграмма:








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