Scheme

З пляцоўкі Вікіпедыя
Перайсці да: рух, знайсці
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.