This project appears to have gone dormant. It will be removed from the list soon unless new activity is noted.
Prototype-based, multi-dispatch object-oriented language that runs in a live environment.

Slate is a prototype-based object-oriented programming language based on Self, CLOS, and Smalltalk-80. Slate syntax is intended to be as familiar as possible to a Smalltalker, for the clarity of messages as phrases. Unlike the Smalltalk family, methods within Slate can be assigned to a signature of objects, instead of being installed on one favored receiver. Slate has also many further expansions of the semantics which enable more concise and natural ways to express solutions to problems.Particular attention is being paid to the design of a fuller and more useful set of libraries than even the usual Smalltalk set, for collections, streams, meta-level protocols, concurrency, and exception-handling, among others. Our prime inspirations are the libraries of Strongtalk, Common Lisp, and Dylan.

n@(Integer traits) primesDo: block
"Decomposes the Integer into primes, applying the block to each (in increasing
[| div next remaining |
  div: 2.
  next: 3.
  remaining: n.
  [[(remaining \\ div) isZero]
       [block applyTo: {div}.
	remaining: remaining // div].
   remaining = 1] whileFalse:
     [div: next.
      next: next + 2] "Just look at the next odd integer."
Information updated 11/11/17
View Comments