2014-04-16 16:39:24 +00:00
|
|
|
# Ginger
|
|
|
|
|
|
|
|
A lisp-like language built on the go programming language. The ideas are still a
|
2014-10-06 16:34:04 +00:00
|
|
|
work-in-progress, and this repo is where I'm jotting down my notes:
|
2014-04-16 16:39:24 +00:00
|
|
|
|
2014-10-06 16:34:04 +00:00
|
|
|
# Language manifesto
|
2014-10-01 21:52:13 +00:00
|
|
|
|
2014-10-06 16:34:04 +00:00
|
|
|
* Anything written in go should be writeable in ginger in as many lines or
|
|
|
|
fewer.
|
2014-10-01 21:52:13 +00:00
|
|
|
|
2014-10-06 16:34:04 +00:00
|
|
|
* When deciding whether to be more go-like or more like an existing lisp
|
|
|
|
language, err on being go-like.
|
2014-10-01 21:52:13 +00:00
|
|
|
|
2014-10-06 16:34:04 +00:00
|
|
|
* The fewer built-in functions, the better. The standard library should be
|
|
|
|
easily discoverable and always importable so helper functions can be made
|
|
|
|
available.
|
2014-10-01 21:52:13 +00:00
|
|
|
|
2014-10-06 16:34:04 +00:00
|
|
|
* When choosing between adding a syntax rule or a datatype and not adding a
|
|
|
|
feature, err on not adding the feature.
|
2014-04-16 16:39:24 +00:00
|
|
|
|
2014-10-06 16:34:04 +00:00
|
|
|
* It is not a goal to make ginger code be usable from go code.
|
2014-04-16 16:39:24 +00:00
|
|
|
|
2014-10-06 16:34:04 +00:00
|
|
|
* Naming should use words instead of symbols, except when those symbols are
|
|
|
|
existing go operators.
|
2014-04-16 16:39:24 +00:00
|
|
|
|
2014-10-06 16:34:04 +00:00
|
|
|
* Overloading function should be used as little as possible.
|