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

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
мНет описания правки
мНет описания правки
Строка 1: Строка 1:
__NOTOC__
__NOTOC__
__NOEDITSECTION__
__NOEDITSECTION__
{{wikipedia}}
<div style="max-width:52em;margin:1em auto 0 4%;">
<div style="max-width:52em;margin:2em auto 0 4%;">
<span style="margin-left:-0.1em"><big>Лисп</big></span> полон выгодных особенностей. Он — старейший из ныне живых языков программирования,<ref>[[w:Ассемблер|Ассемблер]] язык машины, а не программирования, а [[w:Фортран|Фортран]] — не вполне жив.</ref> а по уровню вводимых абстракций и по свободе выражения превосходит все прочие. Лисп первый язык [[:Категория:Функциональное программирование|функционального программирования]], но и любые парадигмы, философии, привычки, условия среды́, — поддерживает гибко и эффективно.
<span style="margin-left:-0.1em"><big>Лисп</big></span> полон выгодных особенностей. Он — старейший из ныне живых языков программирования,<ref>[[w:Ассемблер|Ассемблер]] язык машины, а не программирования, а [[w:Фортран|Фортран]] — не вполне жив.</ref> а по уровню вводимых абстракций и по свободе выражения превосходит все прочие. Лисп первый язык [[:Категория:Функциональное программирование|функционального программирования]], но и любые парадигмы, философии, привычки, условия среды́, — поддерживает гибко и эффективно.


Строка 10: Строка 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> части программы: числа, [[Электронный текст|слова]], указатели, имена типов, операторы, подпрограммы,  это возможные значения ''символа'', обозначающего их в коде. Любое выражение со свободными переменными, включая определения, — обрамляются понятием ''формы''. Сплошная типизация «статических языков» заменяется необязательной декларацией типов, — практически допустимой на любом шаге программы, — равно, как и вкомпиляция произвольного кода. Даже на одних встроенных функциях диалект Common Lisp дает довольно быстрый код. Встроенные функции также можно переопределять для разных типов.
</div>
{{wikipedia}}
<div style="max-width:52em;margin:1em auto 0 4%">
Так, элементарные части программы: числа, [[Электронный текст|текст]], имена переменных, спецоператоры, — в каждом случае абстрагируются до общего понятия ''символа'', [[Лисп/Функции|функции]] — до понятия ''формы'', а сплошная типизация «статических языков» заменяется необязательной декларацией типов, — практически допустимой на любом шаге программы, как и вкомпиляция произвольного кода. Однако, даже на встроенных функциях программы на диалекте Common Lisp довольно производительны, притом, что встроенные функции также можно переопределять.


Познание вычисления как такового — стезя академического курса и лет практики. Притом же надо примером отразить привычные ограничения «непрограммируемых» языков программирования». Задача гигантская, однако, на Лисп упало внимание многих <span style="white-space:nowrap;">компьютерно-математических</span> гениев, и нам следует вскарабкаться на плечи гигантов, уместно освещая избранную [[Лисп/Литература|литературу о Лиспе]]. Ясно также, что кратчайшие пути обучения расплетаются по локальным оптимумам для разных задач. Здесь нам опять повезло: перед вами — не просто [[:w:Викиучебник|учебник в свободном доступе]], а домашняя страница <big>открытой школы</big>, где каждый может быть и слушателем, и автором.<ref>Изучите [[Справка|справку]] по сайту Викиучебник, освойтесь с [[вики]]-средой, общайтесь с читателями и соавторами (<code>[[Обсуждение:Лисп]]</code>, <code>[[Обсуждение:Лисп/Типы данных]]</code> и так далее.)</ref></div>
Познание вычисления как такового — стезя академического курса и лет практики, а посвящение в Лисп также требует на примерах отразить привычные ограничения других — «непрограммируемых» языков программирования. Задача гигантская, однако, на Лисп упало внимание многих компьютерных гениев, и нам следует взобраться на плечи гигантов, уместно освещая избранную [[Лисп/Литература|литературу о Лиспе]]. Ясно также, что кратчайшие пути обучения расплетаются по локальным оптимумам для разных задач. Перед вами — не просто [[:w:Викиучебник|учебник в свободном доступе]], а домашняя страница <big>открытой школы</big>, где каждый может быть и слушателем, и автором.<ref>Изучите [[Справка|справку]] по сайту Викиучебник, освойтесь с [[вики]]-средой, общайтесь с читателями и соавторами (<code>[[Обсуждение:Лисп]]</code>, <code>[[Обсуждение:Лисп/Типы данных]]</code> и так далее.)</ref></div>
<div style="max-width:52em;margin:2em auto 0 4%;padding-left:0.1em;">
<div style="max-width:52em;margin:2em auto 0 4%;padding-left:0.1em;">
==Содержание==
==Содержание==
Строка 22: Строка 20:
*[[Лисп/Рабочая среда|Рабочая среда]]<small>: диалект и интеграция разработки</small>
*[[Лисп/Рабочая среда|Рабочая среда]]<small>: диалект и интеграция разработки</small>
*[[Лисп/Литература|Литература]]<small>: о Лиспе или даже ''про'' Лисп</small>
*[[Лисп/Литература|Литература]]<small>: о Лиспе или даже ''про'' Лисп</small>
** [http://mitpress.mit.edu/sicp/ «Строение и толкование компьютерных программ»] — Гарольд Абельсон и Джеральд Сассман, MIT Press, 1984
**[[Введение в язык Scheme для школьников]]
**: <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://pcl.catap.ru/doku.php Русский перевод] книги [http://gigamonkeys.com/book/ «Practical Common Lisp»] — Peter Seibel, 2005
**[[Введение в язык Scheme для школьников]] — здесь, из физтеховского «Потенциала».
** На английском:
*** ''The Anatomy of Lisp'' — John Allen, 1978
*** ''[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], в мозг!
*[[Лисп/Синтаксис|Синтаксис]]
*[[Лисп/Синтаксис|Синтаксис]]
*[[Лисп/Типы данных|Типы данных]]
*[[Лисп/Типы данных|Типы данных]]

Версия от 09:37, 8 мая 2011


Лисп полон выгодных особенностей. Он — старейший из ныне живых языков программирования,[1] а по уровню вводимых абстракций и по свободе выражения превосходит все прочие. Лисп первый язык функционального программирования, но и любые парадигмы, философии, привычки, условия среды́, — поддерживает гибко и эффективно.

Лисповый код представляется…

(через
  (избыточное (на первый взгляд))
  нагромождение (круглых) скобок))

односвязным списком.[2]
Элементарные части программы: числа, слова, указатели, имена типов, операторы, подпрограммы, — это возможные значения символа, обозначающего их в коде. Любое выражение со свободными переменными, включая определения, — обрамляются понятием формы. Сплошная типизация «статических языков» заменяется необязательной декларацией типов, — практически допустимой на любом шаге программы, — равно, как и вкомпиляция произвольного кода. Даже на одних встроенных функциях диалект Common Lisp дает довольно быстрый код. Встроенные функции также можно переопределять для разных типов.

Познание вычисления как такового — стезя академического курса и лет практики, а посвящение в Лисп также требует на примерах отразить привычные ограничения других — «непрограммируемых» — языков программирования. Задача гигантская, однако, на Лисп упало внимание многих компьютерных гениев, и нам следует взобраться на плечи гигантов, уместно освещая избранную литературу о Лиспе. Ясно также, что кратчайшие пути обучения расплетаются по локальным оптимумам для разных задач. Перед вами — не просто учебник в свободном доступе, а домашняя страница открытой школы, где каждый может быть и слушателем, и автором.[3]

Содержание

(Красным — даже не начатое.)


  1. Ассемблер язык машины, а не программирования, а Фортран — не вполне жив.
  2. В основных диалектах у символов статическая область видимости, и древо символов со введением связи «обозначения» становится последовательно-параллельным частичным порядком, для начала.
  3. Изучите справку по сайту Викиучебник, освойтесь с вики-средой, общайтесь с читателями и соавторами (Обсуждение:Лисп, Обсуждение:Лисп/Типы данных и так далее.)