Scheme

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

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.

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.

Sisällysluettelo

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 Schemelle.
  • GNU-projektin virallinen laajennuskieli Guile on Scheme-toteutus.
  • Kawa on Javalla kirjoitettu Scheme-ympäristö, joka kääntää Schemeä Java-tavukoodiksi.

Aiheesta muualla

Scheme-toteutuksia

Yleisimmät ohjelmointikielet (luettelo)

Tuotantokäytössä: Ada | APL | AWK | Assembly | C | C++ | C# | COBOL | Delphi | Eiffel | Fortran | Java | JavaScript | Lua | Lisp | Objective-C | Pascal | Perl | PHP | PostScript | Python | Ruby | Smalltalk | TCL | Visual Basic

Akateemiset: CLU | Haskell | Logo | ML | OCAML | Prolog | Scheme

Historialliset: ALGOL | BASIC | Modula-3 | MUMPS | Plankalkül | PL/I | Simula

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net