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

Материал из Поле цифровой дидактики
Нет описания правки
Строка 27: Строка 27:
https://www.youtube.com/watch?v=-J_xL4IGhJA
https://www.youtube.com/watch?v=-J_xL4IGhJA


{{#widget:YouTube|id=-J_xL4IGhJA|start=5}}
=== Lisp - Snap! ===


* [[Snap!]] позволяют сохранять свои блоки команд в виде команд Lisp


<syntaxhighlight lang="lisp">
(
    (receiveOnClone)
    (set ID
        (data [length]
            (my "[other sprites]")
        )
    )
    (goto "[random position]")
    (say
        (get ID)
    )
)
</syntaxhighlight>


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

Версия от 21:53, 15 февраля 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)
    )
)

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

(* (+ 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))))))