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

37 байт добавлено ,  11 лет назад
м
Нет описания правки
м
<div style="max-width:60em;margin:1em auto 0 4%;">
Если вы уже знакомы с каким-нибудь алголоподобным языком типа [[:Категория:Язык Си в примерах|Си]] или Пёрла, то понятие '''функции''' в Лиспе может показаться странным, но оно значительно ближе к математическому явлению функции, чем «функции» Си, которые вернее бы назвать более процедурами. Функция в Лиспе есть однозначное отображение множества исходных данных на множество её значений. У функции может быть произвольно много аргументов, — от нуля до <s>бесконечности</s> любого конечного числа, — но обязательно должно быть хотя бы одно значение. Обычная для многих языков префиксная запись вызова функций:
<source lang=c>plus(2,2)</source>
несколько видоизменяется в силу отсутствия синтаксиса: идентификатор ("имя" функции, спецоператора или [[Лисп/Макросы|макровызова]]) становится головным элементом… да, списка:
</source>
В последнем случае квотируется не только <code>сумма-квадратов</code>, но и сам eval!
[[Категория:ЯзыкФункциональное Си в примерахпрограммирование]]
3210

правок