Scheme
Från Rilpedia
Scheme är en dialekt av programmeringspråket Lisp, uppfunnet av Guy Lewis Steele Jr. och Gerald Jay Sussman på MIT och dök upp någon gång på 1970-talet. Det är en av de två största dialekterna tillsammans med CommonLisp. Filosofin bakom språket är minimalistisk, det finns väldigt begränsade programbibliotek utan användaren får själv skapa de flesta funktioner från grunden. Scheme används i undervisningssyfte på flera universitet i Sverige och runt om i världen. [1] Många kurser använder sig av Sussmans bok Structure and Interpretation of Computer Programs.
Scheme använder sig enligt språkdefinitionen av svansrekursion [2]. Det blir på så sätt lätt att göra en iterativ process av en rekursiv funktion.
Innehåll |
Programexempel
Det klassiska programmet "Hello, world!"
"Hello, world!"
Rekursiv funktion som räknar ut fakulteten av ett tal n:
Denna funktion kommer att bli en rekursiv process, för att ett extra tal måste hållas i minnet varje gång funktionen anropas.
Om man istället betraktar den här varianten för faktultetsberäkning:
Här har vi en inre hjälpfunktion som håller reda på mellanvärdena vid fakultetsberäkningen och samlar upp dem. Hjälpfunktionen är rekursiv, men på grund av Schemes svansrekursion kommer denna process bli iterativ, och därmed inte kräva lika mycket av datorns minne.
Källor
- ↑ MIT-Press, lista över skolor som använder Scheme i undervisningen http://mitpress.mit.edu/sicp/adopt-list.html
- ↑ Michael Sperber et. al. (red.) Revised6 Report on the Algorithmic Language Scheme http://www.r6rs.org/final/html/r6rs/r6rs.html
Litteratur
- Dybvig R K The Scheme Programming Language, 2003