Lisp: различия между версиями
Материал из Поле цифровой дидактики
Patarakin (обсуждение | вклад) Нет описания правки |
Patarakin (обсуждение | вклад) |
||
| (не показано 6 промежуточных версий этого же участника) | |||
| Строка 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 | ||
|Ages=25 | |Ages=25 | ||
|Remixing?=No | |Remixing?=No | ||
| Строка 18: | Строка 24: | ||
Основная структура данных Лиспа — динамический [[список]] атомов, определяемый рекурсивно как головной объект и присоединённый к нему список-хвост. Поскольку голова списка тоже может быть списком, список является формой представления произвольного дерева (сам список верхнего уровня — корень, входящие в него подсписки второго и следующих уровней — узлы, атомы — листья). | Основная структура данных Лиспа — динамический [[список]] атомов, определяемый рекурсивно как головной объект и присоединённый к нему список-хвост. Поскольку голова списка тоже может быть списком, список является формой представления произвольного дерева (сам список верхнего уровня — корень, входящие в него подсписки второго и следующих уровней — узлы, атомы — листья). | ||
=== Видео пояснение === | |||
https://www.youtube.com/watch?v=-J_xL4IGhJA | |||
=== Lisp - Snap! === | |||
* [[Snap!]] позволяют сохранять свои блоки команд в виде команд Lisp | |||
<syntaxhighlight lang="lisp"> | |||
( | |||
(receiveOnClone) | |||
(set ID | |||
(data [length] | |||
(my "[other sprites]") | |||
) | |||
) | |||
(goto "[random position]") | |||
(say | |||
(get ID) | |||
) | |||
) | |||
</syntaxhighlight> | |||
==== Перевод между языками ==== | |||
{| class="wikitable" | |||
|- | |||
! Lisp !! Snap! | |||
|- | |||
| <syntaxhighlight lang="lisp"> | |||
( | |||
(receiveOnClone) | |||
(goto Alonso) | |||
(head | |||
(attribute [direction] Alonso) | |||
) | |||
(show) | |||
(until | |||
(touch [edge]) ( | |||
(move 1) | |||
(if | |||
(touch cat) ( | |||
(set Alonso_Energy | |||
(+ | |||
(get Alonso_Energy) 1 | |||
) | |||
) | |||
(wait 0.1) | |||
(removeClone) | |||
) | |||
) | |||
) | |||
) | |||
(removeClone) | |||
) | |||
</syntaxhighlight> || | |||
[[Файл:Alonso pattern keys.png|400px]] | |||
|- | |||
|} | |||
=== Пояснения к синтаксису === | |||
<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> | ||
[[Категория:Язык программирования]] | [[Категория:Язык программирования]] | ||
Текущая версия от 15:22, 7 марта 2025
| Краткое описание языка | 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
Lisp - Snap!
- Snap! позволяют сохранять свои блоки команд в виде команд Lisp
(
(receiveOnClone)
(set ID
(data [length]
(my "[other sprites]")
)
)
(goto "[random position]")
(say
(get ID)
)
)
Перевод между языками
| Lisp | Snap! |
|---|---|
(
(receiveOnClone)
(goto Alonso)
(head
(attribute [direction] Alonso)
)
(show)
(until
(touch [edge]) (
(move 1)
(if
(touch cat) (
(set Alonso_Energy
(+
(get Alonso_Energy) 1
)
)
(wait 0.1)
(removeClone)
)
)
)
)
(removeClone)
)
|
Пояснения к синтаксису
(* (+ 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))))))
