[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
м →‎Введение: replaced: [[сборка мусора] → [[сборка мусора (программирование)]
Строка 20:
# итеративный подход (в котором используются временные переменные для сохранения промежуточного результата).
 
Scheme начинался с попытки понять [[модель акторов]] Карла Хьюитта, для чего Стил и Суссман написали «крошечный интерпретатор [[Лисп]]а», а затем «добавили механизм создания акторов и посылки сообщений». Scheme был первым диалектом [[Лисп]]а, применяющим исключительно статические (а не динамические) области видимости переменных, гарантирующим оптимизацию хвостовой рекурсии и поддерживающим данные булевского типа (#t и #f вместо традиционных T и NIL). Он также был одним из первых языков, непосредственно поддерживающих ''[[продолжения]]''. Начиная со спецификации R^5RS, язык приобрел исключительно мощное и удобное средство для записи [[макрос]]ов на основе шаблонов синтаксического преобразования с «соблюдением гигиены» ({{lang-en|hygienic macro}}). В Scheme также реализована «[[сборка мусора (программирование)|сборка мусора]]», то есть автоматическое освобождение памяти от неиспользуемых более объектов.
 
В качестве базовых структур данных язык использует списки и одномерные массивы («векторы»). В соответствии с декларируемым минимализмом, (пока) нет стандартного синтаксиса для поддержки структур с именованными полями, а также средств [[Объектно-ориентированное программирование|ООП]] — все это может быть реализовано программистом по его предпочтению, хотя большинство реализаций языка предлагают готовые механизмы.