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

Содержимое удалено Содержимое добавлено
{{BookCat}}
м <source> -> <syntaxhighlight> (phab:T237267)
 
Строка 17:
 
== Формы ==
<sourcesyntaxhighlight lang=lisp>4</sourcesyntaxhighlight>
 
По данному выше определению: 4 — это ''число'', стало быть ''атом'', стало быть ''символьное выражение'', стало быть ''программа на Лиспе''. Программа ничего значительного не делает, лишь ''возвращает'' число 4. Попробуем другое символьное выражение:
 
<sourcesyntaxhighlight lang=lisp>(+ 2 2)</sourcesyntaxhighlight>
 
«Сумма 2 и 2». В Лиспе ''символ'' <code>+</code> несёт тот же смысл, что и слова «плюс», «сложить», «сумма» в русском.
Строка 37:
Для не привыкших к префиксной форме то, что мы только что ввели должно показаться несколько странным. Однако, легко догадаться что в первом случае мы вычисляли выражение <math>1 + 2 = 3</math>, а во втором <math>5 + (4 - 3) = 6</math>. Так или иначе, с префиксной записью неизбежно знакомы даже программисты на Си:
 
<sourcesyntaxhighlight lang="c">
int plus (x, y) {
return x + y;
Строка 49:
return plus(5, minus (4, 3));
}
</syntaxhighlight>
</source>
 
Как видим, использование определённой функции в Си также префиксное: <code>plus (5, minus (4, 3))</code>. В Лиспе имя функции вносится в скобки (в голову списка), а запятые опускаются: <code>(plus 5 (minus 4 3))</code>.