source: project/release/4/prometheus/prometheus-2/README @ 14451

Last change on this file since 14451 was 14451, checked in by sjamaan, 11 years ago

Port Prometheus-2 to Chicken, using the clean, unmodified code from the release

File size: 1.3 KB
Line 
1* Overview                                         -*- outline -*-
2
3Prometheus is a prototype-based message-passing object system. This
4means that there are no classes, but instead, objects are created and
5modified on the fly until they match the specified behavior. Then,
6these objects can be "cloned" into a new object which inherits the
7whole behavior of the parent objects. An object in this world is just
8a set of named slots which can be accessed or run by sending a message
9to the object.
10
11In Prometheus, objects are closures that receive as the first argument
12a message selector, and arguments to the message as remaining
13arguments. See the Prometheus manual for further information.
14
15The canonical URL for Prometheus is
16http://www.forcix.cx/software/prometheus.html
17
18
19* Quickstart
20
21In Scheme48, do:
22
23> ,config ,load .../prometheus/scheme/packages.scm
24> ,open prometheus
25> (define my-object (*the-root-object* 'clone))
26> (my-object 'add-value-slot! 'fnord 'set-fnord! 23)
27> (my-object 'fnord)
2823
29
30
31* Bugs and limitations
32
33No bugs known to me, but look at the Pitfalls section in the
34Prometheus manual: (info "(prometheus)Pitfalls")
35
36This object system does not intend to integrate with the rest of
37Scheme. It's only a tool to describe a problem domain.
38
39This project abuses too many names from Greek mythology. The author
40apologizes profusely for this.
Note: See TracBrowser for help on using the repository browser.