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.org (англ.) |
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), у Scheme ёсць толькі адна прастора імён. Гэта значыць, што імёны пераменных і функцый не могуць быць аднолькавымі.
Зноскі
- ↑ Charter for working group 1. Scheme Steering Committee. 2007-08-13.
- ↑ Charter for working group 2. Scheme Steering Committee. 2007-08-13.
- ↑ R6RS Ratification Vote. Scheme Steering Committee. 2007-08-13.
- ↑ Ліст extension of voting period Архівавана 21 ліпеня 2013. у спіску рассылкі Scheme-reports.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.