Kurz: Minimalistisches Lisp mit eleganter Theorie.
Genauer: Scheme wird eingesetzt für Lehre (SICP), Sprachentwurf, Skripting mit GNU Guile, eingebettete Erweiterungssprachen und Forschung. Scheme (1975, Guy Steele und Gerald Sussman am MIT) ist ein bewusst kleiner Dialekt von Lisp. Der gesamte Sprachkern passt auf wenige Seiten, hat aber alles Wesentliche: Funktionen erster Klasse, Closures, Endrekursion, Makros (syntax-rules) und Continuations.
Steckbrief
| Eigenschaft | Wert |
|---|---|
| Erschienen | 1975 |
| Entwickelt von | Guy Steele, Gerald Sussman (MIT) |
| Paradigmen | funktional, minimalistisch |
| Typisierung | dynamisch |
| Ausführung | je nach Implementierung (Guile, Chez, Chicken) |
| Paketverwaltung | je nach Implementierung |
| Dateiendung | .scm |
| Sprachfamilie | Lisp-Familie |
Einsatzgebiete
Lehre (SICP), Sprachentwurf, Skripting mit GNU Guile, eingebettete Erweiterungssprachen und Forschung.
So führst du Code aus
Datei hallo.scm speichern und mit guile hallo.scm ausführen (GNU Guile von gnu.org/software/guile; weitere Implementierungen: Chez, Chicken, Gambit, Racket).
Das erste Programm
(display "Hallo, Welt!")
(newline)
(display (+ 1 2))
(newline)
(write "write zeigt Anführungszeichen")
(newline)
(display (list 1 "zwei" 'drei 4.5))
(newline)
(write (list 1 "zwei" 'drei #\x))
(newline)
(define name "Mia")
(display (string-append "Hallo, " name "!"))
(newline)Ausgabe:
Hallo, Welt!
3
"write zeigt Anf\xfchrungszeichen"
(1 zwei drei 4.5)
(1 "zwei" drei #\x)
Hallo, Mia!Der Kurs: 8 Kapitel
Jedes Kapitel enthält geprüfte Beispiele mit echter Ausgabe, Merksätze, eine Übungsaufgabe und ein Quiz. Zum Üben mit Fortschrittsanzeige, Abzeichen und Zertifikat: Scheme-Kurs auf der Lernseite.
- Einführung und erstes Programm
- Kontrollfluss, Listen und Rekursion
- Strings, Vektoren, Hashtabellen und Records
- Funktionen höherer Ordnung und Closures
- Ein-/Ausgabe, Fehlerbehandlung und Module
- Praxis: Ein eigener Interpreter
- Implementierungen und Ökosystem
- Referenz und Spickzettel
Ähnliche Sprachen
- Racket: Eine Programmiersprache zum Programmieren von Programmiersprachen
- Common Lisp: Die programmierbare Programmiersprache mit Makros
- Haskell: Rein funktional, streng typisiert, elegant
Siehe auch
Programmiersprachen im Überblick, Sprachen im Vergleich, Zeitstrahl der Programmiersprachen, Programmierparadigmen, Kompiliert oder interpretiert?