Scheme¶
Scheme jest jednym z dwóch głównych dialektów języka programowania Lisp, obok Common Lisp. Został stworzony w 1975 roku przez Guya L. Steele'a i Geralda Jaya Sussmana na Massachusetts Institute of Technology (MIT) jako bardziej minimalistyczna, czysta i elegancka alternatywa dla ówczesnego Lispu.
Kluczowe cechy¶
-
Funkcyjność: Scheme jest czystym językiem funkcyjnym, z silnym naciskiem na niezmienność i rekurencję zamiast pętli.
-
Minimalizm: Scheme jest znany z bardzo małej liczby wbudowanych funkcji i składni, co czyni go łatwym do nauczenia się, ale także wymaga więcej pracy od programistów, którzy muszą często sami tworzyć potrzebne im narzędzia.
-
First-class functions i lexical scoping: funkcje w Scheme są "obiektami pierwszej klasy", co oznacza, że mogą być przekazywane jako argumenty do innych funkcji, zwracane jako wartości i przypisywane do zmiennych. Lexical scoping (czyli zakres leksykalny) oznacza, że zmienne są dostępne wewnątrz funkcji, w której zostały zdefiniowane, co pomaga w utrzymaniu czystego i zrozumiałego kodu.
-
Makro system: Scheme posiada potężny system makr, który pozwala programistom na tworzenie nowych konstrukcji języka.
-
Continuations: Scheme wspiera kontynuacje jako sposób na kontrolę przepływu programu, co pozwala na tworzenie skomplikowanych struktur sterowania, takich jak ko-rutyny, wielowątkowość i obsługę wyjątków.
Scheme jest często używany w środowiskach akademickich jako narzędzie do nauczania koncepcji programowania funkcyjnego i jest podstawą wielu innych języków, takich jak Clojure i Racket.