52 lines
1.2 KiB
Markdown
52 lines
1.2 KiB
Markdown
# Objects
|
||
|
||
## Overview
|
||
|
||
In Scheme, as in other Lisp dialects, "everything is an object". But
|
||
Scheme is not "object-oriented" in the sense of classes and methods.
|
||
|
||
Various Scheme implementations have bolted an object system on top of
|
||
standard Scheme. Most of these are variants of the Common Lisp Object
|
||
System (CLOS) which evolved from an older Lisp Machine object system
|
||
called Flavors. The Kawa and IronScheme implementations have Java and
|
||
C# style object systems, respectively.
|
||
|
||
## Existing Scheme object systems (CLOS-like)
|
||
|
||
### Meroon
|
||
|
||
Queinnec93
|
||
|
||
### Bigloo
|
||
|
||
Included since 1.9. Mainly inspired by Meroon.
|
||
|
||
* Ad-hoc polymorphism (generic functions and methods).
|
||
* Single inheritance and mono-dispatch.
|
||
* Introspection.
|
||
|
||
### Gauche
|
||
|
||
### Guile
|
||
|
||
From [the manual](https://www.gnu.org/software/guile/manual/html_node/GOOPS.html):
|
||
|
||
> GOOPS is the object oriented extension to Guile. Its implementation
|
||
> is derived from STk-3.99.3 by Erick Gallesio and version 1.3 of
|
||
> Gregor Kiczales’ Tiny-Clos. It is very close in spirit to CLOS, the
|
||
> Common Lisp Object System, but is adapted for the Scheme language.
|
||
|
||
### MIT Scheme
|
||
|
||
### STk and STklos
|
||
|
||
## Existing Scheme object systems (other)
|
||
|
||
### Kawa
|
||
|
||
Java compatible
|
||
|
||
### IronScheme
|
||
|
||
C# compatible
|