Scheme is a programming language created in 1970 by Guy Steele and Gerald Jay Sussman.
#50on PLDB | 53Years Old | 3.8kUsers |
24Books | 23Papers | 17kRepos |
Scheme is a functional programming language and one of the two main dialects of the programming language Lisp. Unlike Common Lisp, the other main dialect, Scheme follows a minimalist design philosophy specifying a small standard core with powerful tools for language extension. Scheme was created during the 1970s at the MIT AI Lab and released by its developers, Guy L. Read more on Wikipedia...
(display "Hello, world!")
(newline)
(display "Hello World") (newline)
; Hello World in Scheme
(display "Hello, world!")
(newline)
(define-library (libs basic)
(export list2 x)
(begin
(define (list2 . objs) objs)
(define x 'libs-basic)
(define not-exported 'should-not-be-exported)
))
(set! +
(let ((original+ +))
(lambda args
(if (and (not (null? args)) (string? (car args)))
(apply string-append args)
(apply original+ args)))))
(+ 1 2 3)
===> 6
(+ "1" "2" "3")
===> "123"
case do let loop if else when cons car cdr cond lambda lambda* syntax-rules format set! quote eval append list list? member? load
Feature | Supported | Token | Example |
---|---|---|---|
Conditionals | ✓ | ||
Strings | ✓ | " | "Hello world" |
MultiLine Comments | ✓ | #| |# | #| A comment |# |
Print() Debugging | ✓ | display | |
Homoiconicity | ✓ | ||
Prefix Notation | ✓ | (+ 1 2 3) |
|
Macros | ✓ | (define-syntax backwards (syntax-rules () ((_) (syntax-error "(backwards) not allowed")) ((_ e) e) ((_ e1 ... e2) (begin e2 (backwards e1 ...))))) |
|
Line Comments | ✓ | ; | ; A comment |
Comments | ✓ | ||
Lispy | ✓ | ||
Case Insensitive Identifiers | X | ||
Semantic Indentation | X |
title | authors | year | citations | influentialCitations |
---|---|---|---|---|
Revised5 Report on the Algorithmic Language Scheme | H. Abelson and R. K. Dybvig and C. T. Haynes and G. Rozas and IV N.I.Adams and D. Friedman and E. Kohlbecker and G. Steele and D. H. Bartley and R. Halstead and D. Oxley and G. Sussman and G. Brooks and C. Hanson and K. Pitman and M. Wand | 1986 | 570 | 60 |
Revised4 report on the algorithmic language scheme | H. Abelson and R. K. Dybvig and C. T. Haynes and G. Rozas and N. Adams and D. Friedman and E. Kohlbecker and G. Steele and D. H. Bartley and R. Halstead and D. Oxley and G. Sussman and G. Brooks and C. Hanson and K. Pitman and M. Wand and W. Clinger and J. Rees | 1991 | 440 | 24 |
DrScheme: a programming environment for Scheme | R. Findler and John Clements and C. Flanagan and M. Flatt and S. Krishnamurthi and P. Steckler and M. Felleisen | 2002 | 328 | 19 |
The design and implementation of typed scheme | Sam Tobin-Hochstadt and M. Felleisen | 2008 | 297 | 35 |
Revised3 report on the algorithmic language scheme | J. Rees and W. Clinger | 1986 | 209 | 20 |
Revised6 Report on the Algorithmic Language Scheme | Michael Sperber and R. K. Dybvig and M. Flatt and A. V. Straaten and R. Findler and Jacob Matthews | 2009 | 151 | 14 |
IEEE standard for the Scheme programming language | Microcomputer Standards Subcommittee | 1991 | 117 | 6 |
Adaptive Protection Coordination Scheme Using Numerical Directional Overcurrent Relays | M. Alam | 2019 | 84 | 1 |
inGAP-sv: a novel scheme to identify and visualize structural variation from paired end mapping data | J. Qi and F. Zhao | 2011 | 79 | 4 |
Partitioned EDF scheduling for multiprocessors using a C=D task splitting scheme | A. Burns and Robert I. Davis and P. Wang and Fengxiang Zhang | 2011 | 76 | 8 |
An automatic grading scheme for simple programming exercises | J. Hext and J. W. Winings | 1969 | 56 | 3 |
Object-oriented programming in scheme | N. Adams and J. Rees | 1988 | 52 | 1 |
Concurrency oriented programming in termite scheme | G. Germain | 2006 | 45 | 3 |
A Modular Scheme for Deadlock Prevention in an Object-Oriented Programming Model | Scott West and Sebastian Nanz and B. Meyer | 2010 | 22 | 0 |
An Equational Specification for the Scheme Language | Marcelo d’Amorim and G. Rosu | 2005 | 19 | 2 |
Programming World Wide Web pages in scheme | K. Nørmark | 1999 | 17 | 2 |
An adaptive, agent-based protection scheme for radial distribution networks based on IEC 61850 and IEC 61499 | D. Pala and C. Tornelli and G. Proserpio | 2012 | 15 | 0 |
Bee: an integrated development environment for the Scheme programming language | M. Serrano | 2000 | 14 | 0 |
Towards Compatible and Interderivable Semantic Specifications for the Scheme Programming Language, Part II: Reduction Semantics and Abstract Machines | Malgorzata Biernacka and O. Danvy | 2009 | 11 | 0 |
Compiling a Functional Logic Language: The Basic Scheme | S. Antoy and Arthur Peters | 2012 | 8 | 0 |
Bringing Scheme programming to the iPhone—Experience | Engineer Bainomugisha and Jorge Vallejos and E. G. Boix and Pascal Costanza and T. D'Hondt and W. Meuter | 2012 | 4 | 0 |
Programming graphical user interfaces with Scheme | Erick Gallesio and M. Serrano | 2003 | 3 | 0 |
The Scheme Programming Language | J. Franco and D. Friedman and O. Danvy | 1992 | 1 | 0 |