Лисп: различия между версиями
Ramir (обсуждение | вклад) мНет описания правки |
Ramir (обсуждение | вклад) Нет описания правки |
||
Строка 2: | Строка 2: | ||
__NOEDITSECTION__ |
__NOEDITSECTION__ |
||
<div style="max-width:52em;margin:1.3em auto 1em 4%;"> |
<div style="max-width:52em;margin:1.3em auto 1em 4%;"> |
||
<span style="margin-left:-0.1em"><big>Лисп</big></span> — |
<span style="margin-left:-0.1em"><big>Лисп</big></span> — второй<ref>После [[w:Фортран|Фортрана]].</ref> язык программирования высокого уровня. Первый язык [[:Категория:Функциональное программирование|функционального программирования]]. |
||
Код Лиспа представлен…<source style="display:block;clear:both;width:35em;margin:0 auto;" lang="lisp"> |
|||
(через нагромождение (круглых) скобок)</source> |
(через нагромождение (круглых) скобок)</source> |
||
<span style="margin-left:-0.8em">…[[w:Связный список|односвязным списком]] |
<span style="margin-left:-0.8em">…[[w:Связный список|односвязным списком]]</span>, деревом — базовой структурой языка. Элементарные части программы: числа, слова, указатели, имена типов, операторы, — это возможные значения ''символа'', обозначающего их в дереве кода. Символьное представление можно определить для любой ''формы'' — корректно вычислимого выражения с любыми параметрами, выводимыми значениями и воздействиями на среду. Сплошная типизация «статических языков» в Лиспе заменяется декларацией типов. |
||
⚫ | Познание вычисления как такового — стезя академического курса и лет практики, а посвящение в Лисп также требует отразить привычные ограничения прочих — «непрограммируемых» — языков программирования. Задача гигантская, однако, Лиспу досталось внимание величайших компьютерных гениев, и нам остается взобраться на плечи гигантов, уместно освещая избранную [[Лисп/Литература|литературу о Лиспе]]. Ясно также, что кратчайшие пути обучения расплетаются по локальным оптимумам для разных вычислительных задач. Перед вами — не просто [[:w:Викиучебник|учебник в свободном доступе]], а домашняя страница открытой школы, где каждый может быть и учеником, и автором. |
||
⚫ | Познание вычисления как такового — стезя академического курса и лет практики, а посвящение в Лисп также требует отразить привычные ограничения прочих — «непрограммируемых» — языков программирования. Задача гигантская, однако, Лиспу досталось внимание величайших компьютерных гениев, и нам остается взобраться на плечи гигантов, уместно освещая избранную [[Лисп/Литература|литературу о Лиспе]]. Ясно также, что кратчайшие пути обучения расплетаются по локальным оптимумам для разных вычислительных задач. Перед вами — не просто [[:w:Викиучебник|учебник в свободном доступе]], а домашняя страница |
||
{{wikipedia}} |
{{wikipedia}} |
||
<div style="max-width:52em;margin:1.2em auto 0 4%;padding-left:0.1em;"> |
<div style="max-width:52em;margin:1.2em auto 0 4%;padding-left:0.1em;"> |
||
Строка 12: | Строка 15: | ||
<!--<small>''([[(несуществующая страница)|Красным]] — даже не начатое.)''</small>--> |
<!--<small>''([[(несуществующая страница)|Красным]] — даже не начатое.)''</small>--> |
||
*[[Лисп/Историософия|Историософия]]<small>: происхождение и философские основы Лиспа, его силы и слабости</small> |
*[[Лисп/Историософия|Историософия]]<small>: происхождение и философские основы Лиспа, его силы и слабости</small> |
||
*[[Лисп/Рабочая среда|Рабочая среда]] |
*[[Лисп/Рабочая среда|Рабочая среда]]: |
||
* Диалект [[Clojure]] |
** Диалект [[Clojure]] |
||
** Среда Scheme: |
|||
⚫ | |||
** [http://mitpress.mit.edu/sicp/ «Строение и толкование компьютерных программ»] — Гарольд Абельсон и Джеральд Сассман, MIT Press, 1984 |
** [http://mitpress.mit.edu/sicp/ «Строение и толкование компьютерных программ»] — Гарольд Абельсон и Джеральд Сассман, MIT Press, 1984 |
||
**: <small>Книга вынесена в [http://creativecommons.org/licenses/by-nc/3.0/ свободный оборот], сделан [http://lj.rossia.org/users/gogabr/65698.html перевод] на русский. В сети также авторские [http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ видеолекции].</small> |
**: <small>Книга вынесена в [http://creativecommons.org/licenses/by-nc/3.0/ свободный оборот], сделан [http://lj.rossia.org/users/gogabr/65698.html перевод] на русский. В сети также авторские [http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ видеолекции].</small> |
||
⚫ | |||
** [http://lisp.ru/page.php?id=17 Хювенен Э., Сеппянен И. Мир Лиспа. В 2-х т. - М.: Мир, 1990] |
** [http://lisp.ru/page.php?id=17 Хювенен Э., Сеппянен И. Мир Лиспа. В 2-х т. - М.: Мир, 1990] |
||
** [http://pcl.catap.ru/doku.php Русский перевод] книги [http://gigamonkeys.com/book/ «Practical Common Lisp»] — Peter Seibel, 2005 |
** [http://pcl.catap.ru/doku.php Русский перевод] книги [http://gigamonkeys.com/book/ «Practical Common Lisp»] — Peter Seibel, 2005 |
||
Строка 23: | Строка 27: | ||
*** ''The Anatomy of Lisp'' — John Allen, 1978 |
*** ''The Anatomy of Lisp'' — John Allen, 1978 |
||
*** ''[http://lib.store.yahoo.net/lib/paulgraham/onlisp.pdf On Lisp]'' — [[:w:Грэм, Пол|Paul Graham]], 1993 |
*** ''[http://lib.store.yahoo.net/lib/paulgraham/onlisp.pdf On Lisp]'' — [[:w:Грэм, Пол|Paul Graham]], 1993 |
||
*** ''[http://www.lispworks.com/documentation/HyperSpec/Front/ Common Lisp HyperSpec] |
*** ''[http://www.lispworks.com/documentation/HyperSpec/Front/ Common Lisp HyperSpec] |
||
*[[Лисп/Синтаксис|Синтаксис]] |
*[[Лисп/Синтаксис|Синтаксис]] |
||
*[[Лисп/Типы данных|Типы данных]] |
*[[Лисп/Типы данных|Типы данных]] |
||
Строка 33: | Строка 37: | ||
*[[Лисп/Оптимизация|Оптимизация]] |
*[[Лисп/Оптимизация|Оптимизация]] |
||
*[[Лисп/Макросы|Макросы]] |
*[[Лисп/Макросы|Макросы]] |
||
<!-- КРАСНОТА |
|||
===Разности=== |
|||
*[[Лисп/Амортизация|Амортизация]], [[Лисп/Приспособляющиеся структуры|приспособляющиеся структуры]] |
|||
*[[Лисп/Подпрограммы]]<small>: как локализовать эффекты низкоуровневых процедур. Импорт из Си. |
|||
*[[Лисп/Низкоуровневое программирование|Низкоуровневое программирование]] |
|||
===Тонкости=== |
|||
*[[Аспектно-ориентированное программирование]]<small> (примеры на [[Java]])</small>--> |
|||
<!-- ПРЯЧУ КРАСНОТУ ДО ЛУЧШИХ ВРЕМЕН |
|||
===Применения=== |
|||
*[[Лисп/Прототипирование|Прототипирование]] |
|||
*[[Лисп/Информационные сети|Информационные сети]] |
|||
*[[Лисп/Человеческие интерфейсы|Человеческие интерфейсы]] |
|||
**[[Лисп/Веб-строительство|Веб-строительство]] |
|||
*[[Лисп/Делопроизводство|Делопроизводство]] |
|||
*[[Системы автоматического управления]] |
|||
*[[Агенты]] ([[Clojure]]) |
|||
*[[Лингвоанализ]]: распознание речи и смысла, говороботы |
|||
*[[Различение образов]] и [[раскопка данных]]--> |
|||
</div> |
</div> |
||
<div style="max-width:52em;margin:1.6803em auto 0 4%;"> |
<div style="max-width:52em;margin:1.6803em auto 0 4%;"> |
Версия от 06:18, 1 июня 2013
Лисп — второй[1] язык программирования высокого уровня. Первый язык функционального программирования.
Код Лиспа представлен…(через нагромождение (круглых) скобок)
…односвязным списком, деревом — базовой структурой языка. Элементарные части программы: числа, слова, указатели, имена типов, операторы, — это возможные значения символа, обозначающего их в дереве кода. Символьное представление можно определить для любой формы — корректно вычислимого выражения с любыми параметрами, выводимыми значениями и воздействиями на среду. Сплошная типизация «статических языков» в Лиспе заменяется декларацией типов.
Познание вычисления как такового — стезя академического курса и лет практики, а посвящение в Лисп также требует отразить привычные ограничения прочих — «непрограммируемых» — языков программирования. Задача гигантская, однако, Лиспу досталось внимание величайших компьютерных гениев, и нам остается взобраться на плечи гигантов, уместно освещая избранную литературу о Лиспе. Ясно также, что кратчайшие пути обучения расплетаются по локальным оптимумам для разных вычислительных задач. Перед вами — не просто учебник в свободном доступе, а домашняя страница открытой школы, где каждый может быть и учеником, и автором.
Содержание
- Историософия: происхождение и философские основы Лиспа, его силы и слабости
- Рабочая среда:
- Диалект Clojure
- Среда Scheme:
- «Строение и толкование компьютерных программ» — Гарольд Абельсон и Джеральд Сассман, MIT Press, 1984
- Книга вынесена в свободный оборот, сделан перевод на русский. В сети также авторские видеолекции.
- Литература
- Хювенен Э., Сеппянен И. Мир Лиспа. В 2-х т. - М.: Мир, 1990
- Русский перевод книги «Practical Common Lisp» — Peter Seibel, 2005
- Введение в язык Scheme для школьников — здесь, из физтеховского «Потенциала».
- На английском:
- The Anatomy of Lisp — John Allen, 1978
- On Lisp — Paul Graham, 1993
- Common Lisp HyperSpec
- Синтаксис
- Типы данных
- Функции и функциональный стиль
- Математика
- Оптимизация
- Макросы