Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Kalimehtar/gls

Generic Little System
https://github.com/Kalimehtar/gls

racket

Last synced: about 2 months ago
JSON representation

Generic Little System

Awesome Lists containing this project

README

        

gls
===

GLS - Generic Little (Object, Type, Anything, ...) System

It provides multiple dispatch for Racket.

Differences from Swindle:

- Doesn't force you to change all. GLS is a small collection with a dozen of
functions in API. It only adds generic functions.

- It based upon types, not classes. You may dispatch you function on any
predicate you may imagine: `exact-integer?`, `(real-in 0 10)`,
`(and? stream? (not/c stream-empty?))`, ...

GLS is based on Greg Sullivan's GLOS, that was witten for
scheme48. It has the same API, but without implemetation of own object system
(glos-records). So GLS is not "generic little object system", but simply
"generic little system". But I added support for racket/class: you may use
class instead of type predicate and GLS correctly supports subtypes
(subclasses).

Sorry for bad documentation: for API look into main.rkt, for examples of use
-- test.rkt.

Some description of GLOS is in the paper ref-dyn-patterns.

Also, slides in proglangsandsofteng work
through some examples using GLOS.