Scheme
Scheme [] — функциональный язык программирования, один из трёх наиболее популярных диалектов Лиспа (наряду с Common Lisp и Clojure). Создан в середине 1970-х годов исследователями Массачусетского технологического института и .

Обладает минималистичным дизайном, содержит минимум примитивных конструкций и позволяет выразить всё необходимое путём надстройки над ними. Например, использует всего два механизма организации циклов — хвостовую рекурсию и итеративный подход (в котором используются временные переменные для сохранения промежуточного результата).

Язык начинался с попытки реализовать модель акторов Карла Хьюитта, для чего Стил и Сассман написали «крошечный интерпретатор Лиспа», а затем «добавили механизм создания акторов и посылки сообщений». Scheme стал первым диалектом Лиспа, применяющим исключительно статические (а не динамические) области видимости переменных, что гарантировало оптимизацию хвостовой рекурсии и обеспечило поддержку булевского типа (codice_1 и codice_2 вместо традиционных codice_3 и codice_4). Также стал одним из первых языков с поддержкой продолжений. Начиная со спецификации R⁵RS, язык приобрёл средство для записи макросов на основе шаблонов синтаксического преобразования с «соблюдением гигиены» (). Предусматривается «сборка мусора» (автоматическое освобождение памяти от неиспользуемых более объектов).

В качестве базовых структур данных язык использует списки и одномерные массивы («векторы»). В соответствии с декларируемым минимализмом, (пока) нет стандартного синтаксиса для поддержки структур с именованными полями, а также средств ООП — все это может быть реализовано программистом по его предпочтению, хотя большинство реализаций языка предлагают готовые механизмы.

Первоначальное название языка — Schemer, было изменено из-за ограничения на длину имён файлов в ; ( — «авантюрист», «комбинатор»; видимо, намёк на другие лиспообразные языки, вышедшие из MIT — Planner (в одном из значений — «прожектёр») и Conniver («потворщик»)). Значительный вклад в популяризацию языка внесла книга Абельсона и Сассмана «Структура и интерпретация компьютерных программ», длительное время использовавшаяся как базовый учебник программирования в Массачуссетском технологическом институте.
Q193076
функциональный язык программирования
Concept
Q132874
Лисп
Concept
Q849146
Common Lisp
MEDIA
Q51798
Clojure
MEDIA
Q35014
1970-х годов
Concept
Q49108
Массачусетского технологического института
ORG
Q1340959
хвостовую рекурсию
Concept
Q344524
модель акторов
UNK
Q1034415
области видимости
Concept
Q1128903
продолжений
Concept
Q629579
макрос
Concept
Q322202
сборка мусора
Concept
Q79872
ООП
Concept
Q2349274
Planner
Concept
None
Conniver
UNK
Q770584
Абельсона
PER
Q1249747
Структура и интерпретация компьютерных программ
MISC
Q187560
Scheme
Concept
Q187560
Scheme
Concept
Q187560
Scheme
Concept
+1^^http://www.w3.org/2001/XMLSchema#decimal
1
NUMBER
+2^^http://www.w3.org/2001/XMLSchema#decimal
2
NUMBER
+3^^http://www.w3.org/2001/XMLSchema#decimal
3
NUMBER
+4^^http://www.w3.org/2001/XMLSchema#decimal
4
NUMBER
programming paradigm
programming paradigm
programming paradigm
programming paradigm
author