Lisp: различия между версиями

Материал из Поле цифровой дидактики
 
(не показаны 3 промежуточные версии этого же участника)
Строка 1: Строка 1:
{{Карточка языка программирования
{{Карточка языка программирования
|Description=LISP (от англ. LISt Processing language — «язык обработки списков», современное написание: Lisp) — семейство языков программирования, программы и данные в которых представляются в виде списков.
|FieldActivity=Computational Thinker
|FieldActivity=Computational Thinker
|Programming paradigm=Функциональное программирование
|Возрастная категория=17
|Возрастная категория=17
|Dimension=2D
|Dimension=2D
Строка 7: Строка 9:
|Openness=Открытый
|Openness=Открытый
|Address=https://common-lisp.net/
|Address=https://common-lisp.net/
|Descendants=Scheme, Clojure, Лого, Julia
|Ancestors=IPL
|Descendants=Scheme, Clojure, Лого, Julia, Snap!, Lua
|ActiveNow=Project is active
|ActiveNow=Project is active
|Remixing=Нет
|launch year=1960
|Inventor=Маккарти, Hal Abelson
|ForMobileApps=Нет
|Год создания=1958
|Год создания=1958
|Inventor=Маккарти
|Ages=25
|Ages=25
|Remixing?=No
|Remixing?=No
Строка 18: Строка 24:
Основная структура данных Лиспа — динамический [[список]] атомов, определяемый рекурсивно как головной объект и присоединённый к нему список-хвост. Поскольку голова списка тоже может быть списком, список является формой представления произвольного дерева (сам список верхнего уровня — корень, входящие в него подсписки второго и следующих уровней — узлы, атомы — листья).
Основная структура данных Лиспа — динамический [[список]] атомов, определяемый рекурсивно как головной объект и присоединённый к нему список-хвост. Поскольку голова списка тоже может быть списком, список является формой представления произвольного дерева (сам список верхнего уровня — корень, входящие в него подсписки второго и следующих уровней — узлы, атомы — листья).


=== Видео пояснение  ===
https://www.youtube.com/watch?v=-J_xL4IGhJA
{{#widget:YouTube|id=-J_xL4IGhJA|start=5}}
=== Пояснения к синтаксису ===
<syntaxhighlight lang="Lisp" inline>
<syntaxhighlight lang="Lisp" inline>
(* (+ 1 2) (- 3 4))
(* (+ 1 2) (- 3 4))
</syntaxhighlight>
----
<syntaxhighlight lang="lisp">
(defun my-copy-tree (D)
  (cond ((null D) nil)
        ((atom D) D)
        (t (cons (my-copy-tree (car D))
                (my-copy-tree (cdr D))))))
</syntaxhighlight>
</syntaxhighlight>


[[Категория:Язык программирования]]
[[Категория:Язык программирования]]

Текущая версия на 10:38, 17 февраля 2023


Краткое описание языка LISP (от англ. LISt Processing language — «язык обработки списков», современное написание: Lisp) — семейство языков программирования, программы и данные в которых представляются в виде списков.
Компетенции в каких сферах формирует Computational Thinker
Парадигмы программирования Функциональное программирование
Возрастная категория 17
Назначение языка (Общее / Учебное) Язык общего назначения
Visual_Text_Blocks Текст
Измерение (2D/3D/Tangible) 2D
Область знаний
Открытость продукта Открытый
Address https://common-lisp.net/
Предки (Ancestors) IPL
Потомки (Descendants) Scheme, Clojure, Лого, Julia, Snap!, Lua
Активность в данный момент Project is active
Доступны ремиксы? Нет
Год создания 1960
Создатели Маккарти, Hal Abelson
Поясняющее видео
Используется для создания мобильных приложений? Нет


Lisp упоминается в свойствах следующих страниц
Structure and Interpretation of Computer Programs, Искусственный интеллект, Программирование на языках высокого уровня, Рекурсия, Функциональное программирование


Создавался как язык для работы в области искусственного интеллекта

Основная структура данных Лиспа — динамический список атомов, определяемый рекурсивно как головной объект и присоединённый к нему список-хвост. Поскольку голова списка тоже может быть списком, список является формой представления произвольного дерева (сам список верхнего уровня — корень, входящие в него подсписки второго и следующих уровней — узлы, атомы — листья).

Видео пояснение

https://www.youtube.com/watch?v=-J_xL4IGhJA


Пояснения к синтаксису

(* (+ 1 2) (- 3 4))


(defun my-copy-tree (D)
  (cond ((null D) nil)
        ((atom D) D)
        (t (cons (my-copy-tree (car D))
                 (my-copy-tree (cdr D))))))