Scheme

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
Scheme
Lambda lc.svg
Paradigma Functioneel
Verschenen in jaren 70
Ontworpen door Guy Steele, Gerald Jay Sussman
Typesysteem dynamisch, sterk
Implementaties PLT Scheme, MIT/GNU Scheme en anderen
Dialecten T [1]
Beïnvloed door Lisp, Algol
Invloed op Common Lisp, JavaScript, Ruby, Dylan, Lua
Bestandsextensies .scm, .ss
Website http://plt-scheme.org/
Portaal  Portaalicoon   Informatica

Scheme is een functionele programmeertaal. Het is een dialect van de programmeertaal Lisp. Guy L. Steele en Gerald Jay Sussman ontwikkelden het in de jaren zeventig en presenteerden het aan de academische wereld in de zogenaamde 'Lambda Papers'. De taal heette oorspronkelijk 'Schemer', in de traditie van talen als Planner en Conniver, maar werd ingekort door de beperkingen van het ITS-besturingssysteem dat geen bestandsnamen toeliet van meer dan 6 tekens.

De filosofie achter Scheme is minimalisme. Het doel is niet om uitbreiding op uitbreiding te stapelen, maar om zwakheden en beperkingen te verwijderen die uitbreidingen nodig schijnen te maken. Daarom heeft Scheme zo min mogelijk primitieven waarmee de rest geïmplementeerd kan worden. Het belangrijkste mechanisme voor control flow is staartrecursie.

Scheme was de eerste variant van Lisp die uitsluitend lexicaal variabelenbereik (in tegenstelling tot dynamisch variabelenbereik) gebruikte. Net zoals Lisp, gebruikt Scheme garbage collection om geheugenplaatsen met ongebruikte data te hergebruiken. De taal gebruikt lijsten als belangrijke datastructuur, maar kent daarnaast vele andere. Door het minimalisme van de Scheme-specificatie bestaat er geen standaardsyntaxis voor het maken van structuren met benoemde velden, of ondersteuning voor object-georiënteerd programmeren, maar bijna elke implementatie ondersteunt deze uitbreidingen.

Kenmerkend aan Scheme is dat het gebruikmaakt van prefixnotatie van bewerkingen in plaats van het meestgebruikte infix. Bijvoorbeeld 3+5 is een infixnotatie voor de optelling (de operator + bevindt zich tussen de 3 en de 5) terwijl + 3 5 de prefixnotatie is waarbij de operator (+) zich voor de twee operanden bevindt (3 en 5).

Externe link[bewerken]