Лисп: различия между версиями
Ramir (обсуждение | вклад) мНет описания правки |
Ramir (обсуждение | вклад) Нет описания правки |
||
Строка 2: | Строка 2: | ||
__NOTOC__ |
__NOTOC__ |
||
__NOEDITSECTION__ |
__NOEDITSECTION__ |
||
<div style="max-width:52em;margin:1em auto 0 4%;"> |
<div style="max-width:52em;margin:1em auto 0 4%;text-align:justify"> |
||
<span style="margin-left:-0.1em"><big>Лисп</big></span> полон выгодных особенностей. Он — старейший из ныне живых языков программирования |
<span style="margin-left:-0.1em"><big>Лисп</big></span> полон выгодных особенностей. Он — старейший из ныне живых языков программирования,<ref>Ибо [[w:Ассемблер|Ассемблер]] «язык» машины, а не программирования, а [[w:Фортран|Фортран]] — не вполне жив.</ref> а по уровню вводимых абстракций и по свободе выражения Лисп превосходит все прочие. Это первый язык [[:Категория:Функциональное программирование|функционального программирования]], но и любые парадигмы, философии, привычки, условия среды — он поддерживает гибко и эффективно. |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
…</code> |
|||
⚫ | <span style="margin- |
||
Лисповый код представляется…<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" /> |
|||
Всевозможные элементарные части программы: числа, [[Электронный текст|текст]], имена переменных, — в каждом случае абстрагируются до общего понятия [[Лисп/Символы|''символа'']], [[Лисп/Функции|функции]] – до понятия ''формы'', а сплошная типизация «статических языков» заменяется необязательной декларацией типов, — допустимой, практически, на любом шаге программы, как и вкомпиляция произвольного кода. Хотя, даже на встроенных функциях программы на [[Lisp/диалекты|диалекте]] Common Lisp довольно производительны, притом встроенные функции также можно переопределять. |
Всевозможные элементарные части программы: числа, [[Электронный текст|текст]], имена переменных, — в каждом случае абстрагируются до общего понятия [[Лисп/Символы|''символа'']], [[Лисп/Функции|функции]] – до понятия ''формы'', а сплошная типизация «статических языков» заменяется необязательной декларацией типов, — допустимой, практически, на любом шаге программы, как и вкомпиляция произвольного кода. Хотя, даже на встроенных функциях программы на [[Lisp/диалекты|диалекте]] Common Lisp довольно производительны, притом встроенные функции также можно переопределять. |
||
Познание вычисления как такового — стезя академического курса и лет практики. Притом же надо примером отразить привычные ограничения «непрограммируемых языков программирования». Задача гигантская, однако, на Лисп упало внимание многих компьютерно-математических гениев, а нам следует вскарабкаться на плечи гигантов, уместно освещая избранную [[Лисп/Литература|литературу о Лиспе]]. Ясно также, что кратчайшие пути обучения расплетаются по локальным оптимумам для разных задач. Здесь нам опять повезло: перед вами — не просто [[: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;"><small>''([[(несуществующая страница)|Красным]] — даже не начатое.)''</small> |
<div style="max-width:52em;margin:2em auto 0 4%;padding-left:0.1em;"><small>''([[(несуществующая страница)|Красным]] — даже не начатое.)''</small> |
||
Строка 22: | Строка 23: | ||
===Основы=== |
===Основы=== |
||
⚫ | |||
*[[Лисп/Синтаксис|Синтаксис]] |
*[[Лисп/Синтаксис|Синтаксис]] |
||
*[[Лисп/Типы данных|Типы данных]] |
*[[Лисп/Типы данных|Типы данных]] |
||
Строка 37: | Строка 39: | ||
*[[Лисп/Низкоуровневое программирование|Низкоуровневое программирование]] |
*[[Лисп/Низкоуровневое программирование|Низкоуровневое программирование]] |
||
=== |
===Тонкости=== |
||
*[[Аспектно-ориентированное программирование]]<small> (примеры на [[Java]])</small>--> |
*[[Аспектно-ориентированное программирование]]<small> (примеры на [[Java]])</small>--> |
||
⚫ | |||
*[[Восходящее программирование]] |
|||
<!-- ПРЯЧУ КРАСНОТУ ДО ЛУЧШИХ ВРЕМЕН |
<!-- ПРЯЧУ КРАСНОТУ ДО ЛУЧШИХ ВРЕМЕН |
Версия от 06:28, 8 мая 2011
Лисп полон выгодных особенностей. Он — старейший из ныне живых языков программирования,[1] а по уровню вводимых абстракций и по свободе выражения Лисп превосходит все прочие. Это первый язык функционального программирования, но и любые парадигмы, философии, привычки, условия среды — он поддерживает гибко и эффективно.
Лисповый код представляется…
(через
(избыточное (на первый взгляд)
нагромождение (круглых) скобок)))
…односвязным списком.[2]
Всевозможные элементарные части программы: числа, текст, имена переменных, — в каждом случае абстрагируются до общего понятия символа, функции – до понятия формы, а сплошная типизация «статических языков» заменяется необязательной декларацией типов, — допустимой, практически, на любом шаге программы, как и вкомпиляция произвольного кода. Хотя, даже на встроенных функциях программы на диалекте Common Lisp довольно производительны, притом встроенные функции также можно переопределять.
Содержание
- Историософия: происхождение и философские основы Лиспа, его силы и слабости
- Рабочая среда: диалект и интеграция разработки
- Литература: о Лиспе или даже про Лисп
- Введение в наш порядок изучения
Основы
- Синтаксис
- Типы данных
- Функции и функциональный стиль
Разности
Примечания
- ↑ Ибо Ассемблер «язык» машины, а не программирования, а Фортран — не вполне жив.
- ↑ В основных диалектах у символов статическая область видимости, и древо символов со введением связи «обозначения» становится последовательно-параллельным частичным порядком, для начала.
- ↑ Изучите справку по сайту Викиучебник, освойтесь с вики-средой, общайтесь с читателями и соавторами (
Обсуждение:Лисп
,Обсуждение:Лисп/Типы данных
и так далее.)