Scheme

From Wikipedia, the free encyclopedia

Scheme

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

Хуткія факты Клас мовы, З’явілася ў ...
Scheme
Thumb
Клас мовы мультыпарадыгменая
З’явілася ў 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.org (англ.)
Закрыць

Традыцыйна асноўнай рысай мовы 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), у Scheme ёсць толькі адна прастора імён. Гэта значыць, што імёны пераменных і функцый не могуць быць аднолькавымі.

Зноскі

  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 Архівавана 21 ліпеня 2013. у спіску рассылкі Scheme-reports.

Wikiwand - on

Seamless Wikipedia browsing. On steroids.