Scheme

З пляцоўкі Вікіпедыя
Jump to navigation Jump to search
Scheme
Клас мовы: мультыпарадыгмная
З'явілася ў: 1975
Аўтар(ы): Гай Сціл, Джэральд Сасмэн
Пашырэнне файлаў: .scm
Тыпізацыя дадзеных: строгая, дынамічная
Асноўныя рэалізацыі: Chibi-Scheme, Chicken, Gambit, Guile, Kawa, MIT Scheme, Racket, Tiny Scheme
Зведала ўплыў: Lisp, ALGOL, MDL
Паўплывала на: Clojure, Common Lisp, Dylan, EuLisp, Haskell, JavaScript, Lua, R, Ruby

Scheme — мова праграмавання з сямейства моваў Лісп, створаная Гаем Сцілам і Джэральдам Сасмэнам.

Традыцыйна асноўнай рысай мовы Scheme быў мінімалізм, але стандарт R6RS быў значна большым за папярэднія, а новы стандарт R7RS будзе апісваць два варыянта мовы: «малы» варыянт (уключае толькі найбольш неабходныя ў мове праграмавання рэчы, на аснове якіх можна пабудаваць усе іншыя; ствараецца працоўнай групай 1[1]) і «вялікі» (уключае тое, што неабходна для практычнага выкарыстання мовы; ствараецца працоўнай групай 2[2]).

Фармальным стандартам мовы Scheme з'яўляецца стандарт IEEE 1178. Стандартамі дэ-факта з'яўляюцца дакументы RnRS (англ. Revisedn Report on on the Algorithmic Language Scheme, гэта значыць Палепшаная n раз справаздача пра алгарытмічную мову Scheme), якія ствараюцца спецыяльна абраным камітэтам і прымаюцца ў рэзультаце галасавання. Стандарт R6RS быў прыняты ў 2007 годзе[3]. 20 мая закончыцца галасаванне[4] па «маленькаму» варыянту мовы з R7RS.

Стандарт апісвае толькі неабходны мінімум.

Асноўныя рысы мовы[правіць | правіць зыходнік]

Як і ўсе мовы з сямейства Ліспаў, Scheme выкарыстоўвае прэфіксную натацыю. У Scheme матэматычныя аператары +, -, /, * разглядаюцца як функцыі і пішуцца перад іх аргументамі. Напрыклад, сума x і 1 запісваецца так:

   (+ x 1)

Выклік функцыі запісваецца такім жа чынам:

   (display "Hello, world")

Для схемы характэрная гомаіканічнасць — код і дадзеныя выглядаюць аднолькава. Выклік функцыі у той жа час з'яўляецца звязаным спісам. Вось так апісваецца спіс з двума элементамі — сімвалічным аб'ектам display і радком "Hello, world":

   '(display "Hello, world")

Гомаіканічнасць дазваляе ствараць макрасы — код, які пераўтварае іншы код.

У адрозненне ад іншых ліспаў (у першую чаргу ад Common Lisp), у Схеме ёсць толькі адна прастора імён. Гэта значыць, што імёны зменных і функцый не могуць быць аднолькавымі.


Спасылкі[правіць | правіць зыходнік]

  1. Charter for working group 1. Scheme Steering Committee. 2007-08-13.
  2. Charter for working group 2. Scheme Steering Committee. 2007-08-13.
  3. R6RS Ratification Vote. Scheme Steering Committee. 2007-08-13.
  4. Ліст extension of voting period у спіску рассылкі Scheme-reports.