Category:Scheme
This programming language may be used to instruct a computer to perform a task.
Garbage collected: | Yes |
---|---|
Parameter passing methods: | By value |
Type safety: | Safe |
Type strength: | Strong |
Type expression: | Implicit |
Type checking: | Dynamic |
See Also: |
Scheme is a multi-paradigm programming language. It is one of the two main dialects of Lisp and supports a number of programming paradigms; however it is best known for its support of functional programming. It was developed by Guy L. Steele and Gerald Jay Sussman in the 1970s. Scheme was introduced to the academic world via a series of papers, now referred to as Sussman and Steele's Lambda Papers. There are two standards that define the Scheme language: the official IEEE standard, and a de facto standard called the Revisedn Report on the Algorithmic Language Scheme, nearly always abbreviated RnRS, where n is the number of the revision. The current standard is R7RS, with R5RS and, less common, R6RS still in use.
Scheme's philosophy is minimalist. Scheme provides as few primitive notions as possible, and, where practical, lets everything else be provided by programming libraries.
Scheme was the first dialect of Lisp to choose static (a.k.a. lexical) over dynamic variable scope. It was also one of the first programming languages to support first-class continuations.
Running Examples
Some examples from this site require particular versions of Scheme, or libraries, to run.
- R7RS programs typically begin with a line such as (import (scheme base) ...)
- R6RS programs with a line such as (import (rnrs) ...)
- R5RS programs don't require any preamble.
A semi-standard set of libraries for Scheme is the collection SRFIs (from Scheme Requests For Implementation). These libraries provide additional functions operating on core data structures, such as SRFI-1 for lists and SRFI-13 for strings; additional data structures, such as SRFI-69 or SRFI-125 for hash tables; or additional functionality, such as SRFI-42 providing eager comprehensions. Example programs which require one or more SRFIs must be run on implementations which support that SRFI.
Scheme does not directly support a GUI library: some examples use PsTk.
Citations
- Wikipedia:Scheme (programming language)
- R7RS Scheme home page
- R6RS Scheme home page
- R5RS Scheme documentation
Pages in category "Scheme"
The following 200 pages are in this category, out of 429 total.
(previous page) (next page)H
I
L
- Lah numbers
- Largest int from concatenated ints
- Last letter-first letter
- Leap year
- Least common multiple
- Left factorials
- Letter frequency
- Levenshtein distance
- Linear congruential generator
- List comprehensions
- Literals/Floating point
- Literals/Integer
- Literals/String
- Logical operations
- Long multiplication
- Long year
- Longest common subsequence
- Longest increasing subsequence
- Loop over multiple arrays simultaneously
- Loops/Break
- Loops/Continue
- Loops/Do-while
- Loops/Downward for
- Loops/For
- Loops/For with a specified step
- Loops/Foreach
- Loops/Infinite
- Loops/N plus one half
- Loops/Nested
- Loops/While
- Lucas-Lehmer test
- Luhn test of credit card numbers
- LZW compression
M
- MAC vendor lookup
- Machine code
- Man or boy test
- Mandelbrot set
- Matrix multiplication
- Matrix transposition
- Matrix-exponentiation operator
- Miller–Rabin primality test
- Modular arithmetic
- Modular exponentiation
- Modulinos
- Monads/Writer monad
- Monty Hall problem
- Multifactorial
- Multiline shebang
- Multiple distinct objects
- Multiplication tables
- Multisplit
- Mutual recursion
N
O
P
- Palindrome detection
- Pascal matrix generation
- Pascal's triangle
- Peaceful chess queen armies
- Perceptron
- Perfect numbers
- Periodic table
- Permutations
- Pi
- Playing cards
- Power set
- Primality by trial division
- Prime decomposition
- Probabilistic choice
- Program name
- Program termination
- Pseudo-random numbers/PCG32
- Pythagorean triples
R
- Random numbers
- Range expansion
- Range extraction
- Read a file line by line
- Read entire file
- Real constants and functions
- Recaman's sequence
- Reduced row echelon form
- Remove duplicate elements
- Rename a file
- Repeat
- Repeat a string
- Repunit primes
- Return multiple values
- Reverse a string
- Reverse words in a string
- Roman numerals/Decode
- Roman numerals/Encode
- Roots of a function
- Roots of a quadratic function
- Roots of unity
- Rot-13
- Run-length encoding
- Runtime evaluation
- Runtime evaluation/In an environment
S
- S-expressions
- Same fringe
- Search a list
- Search a list of records
- Sequence of non-squares
- Set
- SHA-1
- Shell one-liner
- Shift list elements to left by 3
- Short-circuit evaluation
- Show the epoch
- Sierpinski carpet
- Sierpinski triangle
- Sieve of Eratosthenes
- Simulated annealing
- Singly-linked list/Element definition
- Singly-linked list/Element insertion
- Singly-linked list/Traversal
- Singular value decomposition
- Sleep
- Sockets
- Sort an integer array
- Sort disjoint sublist
- Sort using a custom comparator
- Sorting algorithms/Bogosort
- Sorting algorithms/Bubble sort
- Sorting algorithms/Gnome sort
- Sorting algorithms/Heapsort
- Sorting algorithms/Insertion sort
- Sorting algorithms/Merge sort
- Sorting algorithms/Patience sort
- Sorting algorithms/Permutation sort
- Sorting algorithms/Quicksort
- Sorting algorithms/Radix sort
- Sorting algorithms/Tree sort on a linked list
- Soundex
- Stack
- Stair-climbing puzzle
- Stern-Brocot sequence
- String case
- String comparison
- String concatenation
- String length
- Strip a set of characters from a string
- Strip comments from a string
- Substring
- Substring/Top and tail
- Sum and product of an array
- Sum and product puzzle
- Sum digits of an integer
- Sum multiples of 3 and 5
- Sum of a series
- Sum of squares
- Sutherland-Hodgman polygon clipping
- Sylvester's sequence
- Symmetric difference
- System time