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

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


<span style="margin-left:-0.1em">Дело</span> в том, что лисповый код…
<span style="margin-left:-0.1em">Дело</span> в том, что лисповый код…

Версия от 00:41, 30 декабря 2008


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

Дело в том, что лисповый код…

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

…представляется простой и удобной структурой данных — списком (точнее, односвязным списком, стало быть древом), где всевозможные составные части программы: числа, текст, имена переменных, функции, особые операторы… — абстрагируются до общего понятия символа. А ведь Лисп на короткой ноге со всевозможными структурами данных. Вот и получается, что метапрограммирование — в самой основе этого языка. Но и не только оно, разумеется.

Здесь мы намерены научить читателя программировать на Лиспе, хотя бы в одном из его диалектов. Ответственный подход к этой задаче требует (перед изучением языка или же одновременно) изучение искусства программирования как такового, — дело многих лет академического занятия, чтения и практики. Притом, независимо от наличия навыка программирования на иных языках, начинающему лиспнику нужно изучать много нового, порою старательно отвыкая от привычных ограничений, дабы окунуться в бездонную многомерность «программируемого языка программирования»… Задача перед нами гигантская.

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

Покамест же учебник только начат, и для средоточения наших усилий положим такое требование читателю: знание Лиспа Вам нужно для решения некоей сложной задачи, либо определённого класса задач. Вы — не языковед, из любопытства знакомящийся с программистской латынью, а деловой человек, нуждающий верно, точно и красиво излагать на языке творческие мысли. В толстый академико-промышленный справочник по отдельному диалекту вы заглянете лишь изредка, за объяснением выражения, непонятного из контекста. Наш учебник постремится избывать такие неясности добавлением всё новых уроков и уместными ссылками на литературу. Совершенствованию помогут, опять-таки, ваши отзывы и замечания.

Содержание

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

Элементы

Частности

Тонкости

Разности

Применения

[…]

Более конкретное применение

Примечания

0. Сноски в этом учебнике заключают строго необязательное, второстепенное повествование, призванное дать пояснение неочевидным утверждениям или решить возможные вопросы. Если таковых у Вас не возникает — смело пропускайте примечания.

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