Лисп: различия между версиями
Ramir (обсуждение | вклад) мНет описания правки |
Ramir (обсуждение | вклад) Нет описания правки |
||
Строка 11: | Строка 11: | ||
нагромождение (круглых) скобок)</source></div> |
нагромождение (круглых) скобок)</source></div> |
||
<span style="float:right;margin-right:-0.61803em">…[[w:Связный список|односвязным списком]].<ref>В основных диалектах у символов статическая область видимости, и древо символов со введением связи «обозначения» становится [[:w:en:Series-parallel partial order|последовательно-параллельным частичным порядком]], для начала.</ref></span><br style="clear:both" /> |
<span style="float:right;margin-right:-0.61803em">…[[w:Связный список|односвязным списком]].<ref>В основных диалектах у символов статическая область видимости, и древо символов со введением связи «обозначения» становится [[:w:en:Series-parallel partial order|последовательно-параллельным частичным порядком]], для начала.</ref></span><br style="clear:both" /> |
||
<span style="margin-left:-0.161803em">Элементарные</span> части программы: числа, [[Электронный текст|слова]], указатели, имена типов, операторы, подпрограммы, — это возможные значения ''символа'', обозначающего их в коде. Любое выражение со свободными переменными, включая определения, — обрамляются понятием ''формы''. Сплошная типизация «статических языков» заменяется необязательной декларацией типов, — |
<span style="margin-left:-0.161803em">Элементарные</span> части программы: числа, [[Электронный текст|слова]], указатели, имена типов, операторы, подпрограммы, — это возможные значения ''символа'', обозначающего их в коде. Любое выражение со свободными переменными, включая определения, — обрамляются понятием ''формы''. Сплошная типизация «статических языков» заменяется необязательной декларацией типов, — технически допустимой на любом шаге программы, — равно, как и вкомпиляция произвольного кода. |
||
Познание вычисления как такового — стезя академического курса и лет практики, а посвящение в Лисп также требует на примерах отразить привычные ограничения других — «непрограммируемых» — языков программирования. Задача гигантская, однако, на Лисп упало внимание многих компьютерных гениев, и нам следует взобраться на плечи гигантов, уместно освещая избранную [[Лисп/Литература|литературу о Лиспе]]. Ясно также, что кратчайшие пути обучения расплетаются по локальным оптимумам для разных задач. Перед вами — не просто [[:w:Викиучебник|учебник в свободном доступе]], а домашняя страница <big>открытой школы</big>, где каждый может быть и слушателем, и автором.<ref>Изучите [[Справка|справку]] по сайту Викиучебник, освойтесь с [[вики]]-средой, общайтесь с читателями и соавторами (<code>[[Обсуждение:Лисп]]</code>, <code>[[Обсуждение:Лисп/Типы данных]]</code> и так далее.)</ref></div> |
Познание вычисления как такового — стезя академического курса и лет практики, а посвящение в Лисп также требует на примерах отразить привычные ограничения других — «непрограммируемых» — языков программирования. Задача гигантская, однако, на Лисп упало внимание многих компьютерных гениев, и нам следует взобраться на плечи гигантов, уместно освещая избранную [[Лисп/Литература|литературу о Лиспе]]. Ясно также, что кратчайшие пути обучения расплетаются по локальным оптимумам для разных задач. Перед вами — не просто [[:w:Викиучебник|учебник в свободном доступе]], а домашняя страница <big>открытой школы</big>, где каждый может быть и слушателем, и автором.<ref>Изучите [[Справка|справку]] по сайту Викиучебник, освойтесь с [[вики]]-средой, общайтесь с читателями и соавторами (<code>[[Обсуждение:Лисп]]</code>, <code>[[Обсуждение:Лисп/Типы данных]]</code> и так далее.)</ref></div> |
Версия от 23:56, 9 мая 2011
Лисп полон выгодных особенностей. Он — старейший из ныне живых языков программирования,[1] а по уровню вводимых абстракций и по свободе выражения превосходит все прочие. Лисп первый язык функционального программирования, но и любые парадигмы, философии, привычки, условия среды́, — поддерживает гибко и эффективно.
Лисповый код представляется…
(через
(избыточное (на первый взгляд))
нагромождение (круглых) скобок)
…односвязным списком.[2]
Элементарные части программы: числа, слова, указатели, имена типов, операторы, подпрограммы, — это возможные значения символа, обозначающего их в коде. Любое выражение со свободными переменными, включая определения, — обрамляются понятием формы. Сплошная типизация «статических языков» заменяется необязательной декларацией типов, — технически допустимой на любом шаге программы, — равно, как и вкомпиляция произвольного кода.
Содержание
(Красным — даже не начатое.)
- Историософия: происхождение и философские основы Лиспа, его силы и слабости
- Рабочая среда: диалект и интеграция разработки
- Литература: о Лиспе или даже про Лисп
- «Строение и толкование компьютерных программ» — Гарольд Абельсон и Джеральд Сассман, 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, в мозг!
- «Строение и толкование компьютерных программ» — Гарольд Абельсон и Джеральд Сассман, MIT Press, 1984
- Синтаксис
- Типы данных
- Функции и функциональный стиль
- Математика
- Оптимизация
- ↑ Ассемблер язык машины, а не программирования, а Фортран — не вполне жив.
- ↑ В основных диалектах у символов статическая область видимости, и древо символов со введением связи «обозначения» становится последовательно-параллельным частичным порядком, для начала.
- ↑ Изучите справку по сайту Викиучебник, освойтесь с вики-средой, общайтесь с читателями и соавторами (
Обсуждение:Лисп
,Обсуждение:Лисп/Типы данных
и так далее.)