Scheme

Scheme on funktionaalinen ohjelmointikieli ja eräs Lisp-murteista. Schemen kehittivät Guy L. Steele ja Gerald Jay Sussman 1970-luvulla. Schemen alkuperäinen nimi oli "Schemer", mutta käytetty ITS-käyttöjärjestelmä rajoitti tiedostojen nimet kuuteen merkkiin, joten lyhyempi nimi jäi käyttöön.

Scheme keskittyy minimaalisuuteen. Kielessä itsessään on mahdollisimman vähän toimintoja ja kaikki muu jätetään kirjastoille. Tätä kuvastaa hyvin se, että Schemen spesifikaatio, Revised5 th Report on the Algorithmic Language Scheme (R5RS), on noin 50 sivua verrattuna Common Lisp -spesifikaatioon, joka on noin 1 300 sivua.

Kieli käyttää latentiksi tyypitykseksi kutsuttua tyyppijärjestelmää.

Scheme ohjelmointikielen pohjalta on kehittynyt Racket-murre.

 Esimerkkejä 

Yhteenlasku:

 ;; tämä on kommentti
 (+ 5 5)

Funktion määrittely ja kutsu:

(define (laske-palkka tunnit tuntipalkka)
  (* tunnit tuntipalkka))

(laske-palkka 60 12)

Funktionaalisille ohjelmointikielille hei maailma -ohjelman vastine on kertomafunktio. Scheme-versio:

 (define (kertoma n)
   (cond
     ((zero? n) 1)
     (else (* n (kertoma (- n 1))))))

Käyttökohteita

Suosittu avoimen lähdekoodin kuvankäsittelyohjelma GIMP käyttää Schemeä skriptikielenään.
Avoimen lähdekoodin nuotinnusohjelma Lilypond perustuu Schemeen.
GNU-projektin virallinen laajennuskieli Guile on Scheme-toteutus. Sitä käytetään mm. GNU Guix Paketinhallintajärjestelmässä.
Kawa on Javalla kirjoitettu Scheme-ympäristö, joka kääntää Schemeä Java-tavukoodiksi.
Multimediaympäristöt Fluxus  ja Impromptu  käyttävät Schemeä ohjelmointikielenään.

 Lähteet 

 Aiheesta muualla 

 https://www.scheme.org/ 
 http://www.schemers.org/ 
 R5RS 
 R6RS 




 Scheme-toteutuksia 

 Chicken 
 Guile 
 Chez Scheme 
 Gambit  
 Kawa 
 Racket (eräs Schemen murre) 
 Scheme48 
 Gauche 
 Gerbil 

Luokka:Lisp
Luokka:Vuoden 1970 ohjelmistot
Luokka:1970-luvun ohjelmointikielet