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

Содержимое удалено Содержимое добавлено
мНет описания правки
мНет описания правки
Строка 1:
==Квиксорт= =
<div style="max-width:52em;margin:1em auto 0 4%;">
Вот как можно упорядочить последовательность элементов по возрастанию:
<source lang=lisp>
Строка 28 ⟶ 29 :
## головы списка <var>A</var>: <code>(car A)</code> и
## результата рекурсивного вызова нашей функции по отношению к первому элементу (<code>CAR</code>) второго списка-элемента в «двойном списке» <code>part</code>.
</div>
 
==Синтаксис==
<div style="max-width:52em;margin:1em auto 0 4%;">
Лингвистические термины вроде «предложений», «лексем», «морфем», «фонем» — выделяют закономерные и типичные конструкции и построения; они изучают ''внешний вид'' языка, а ни в коем случае не ''смысл'' частных выражений на языке.
 
Строка 51 ⟶ 53 :
 
Подобно «знакам» (лексемам, морфемам и фонемам в человеческих языках), ''символы'' в Лиспе могут означать, представлять, делать самые разнообразные вещи.
</div>
 
=== Формы ===
<div style="max-width:52em;margin:1em auto 0 4%;">
 
<source lang=lisp>4</source>
 
Строка 62 ⟶ 64 :
«Сумма 2 и 2». В Лиспе ''символ'' <code>+</code> несёт тот же смысл, что и слова «плюс», «сложить», «сумма» в русском.
 
</div>
 
=== Префиксная запись ===
<div style="max-width:52em;margin:1em auto 0 4%;">
 
Сразу после запуска clisp вы увидите приглашение к вводу выражений для вычисления. Попробуем вычислить несколько выражений:
 
Попробуем вычислить несколько выражений
 
{{console|> (+ 1 2)
3
Строка 76 ⟶ 75 :
6}}
 
Для людей не привыкших к префиксной форме то, что мы только что ввели должно показаться несколько странным. Однако, легко догадаться что в первом случае мы вычисляли выражение <math>1 + 2 = 3</math>, а во втором <math>5 + (4 - 3) = 6</math>. Если вы имеете опыт программирования на других языках (скажем на СиТак или Паскале)иначе, тос напрефиксной самомзаписью деленеизбежно вызнакомы имеетедаже опытпрограммисты обращенияна и с префиксной записью.Си:
 
Рассмотрим небольшой пример на языке Си.
 
<source lang="c">
Строка 94 ⟶ 91 :
</source>
 
Как видим, использование определённой функции в Си также префиксное: <code>plus (5, minus (4, 3))</code>. В Лиспе имя функции вносится в скобки (в голову списка), а запятые опускаются: <code>(plus 5 (minus 4 3))</code>.
Видно, что когда программист на Си определяет использует некоторую функцию он пользуется именно префиксной записью. Отличие заключается лишь в том что Си-программист пишет <code>plus (5, minus (4, 3))</code>, а Лисп-программист <code>(plus 5 (minus 4 3))</code>. То есть, имя функции вносится в скобки, а запятые опускаются.
</div>
 
==Примечания==
<div style="max-width:52em;margin:1em auto 0 2%;">
<references />
</div>
[[Категория:Лисп| ]]