core | ||
docs | ||
eval | ||
macros | ||
parse | ||
seq | ||
types | ||
.gitignore | ||
.go.yaml | ||
Makefile | ||
README.md |
Ginger
A lisp-like language built on the go programming language. The ideas are still a work-in-progress, and this repo is where I'm jotting down my notes:
Language manifesto
-
Anything written in go should be writeable in ginger in as many lines or fewer.
-
When deciding whether to be more go-like or more like an existing lisp language, err on being go-like.
-
The fewer built-in functions, the better. The standard library should be easily discoverable and always importable so helper functions can be made available.
-
When choosing between adding a syntax rule/datatype and not adding a feature, err on not adding the feature.
-
It is not a goal to make ginger code be usable from go code.
-
Naming should use words instead of symbols, except when those symbols are existing go operators.
-
Overloading functions should be used as little as possible. Possibly not at all
Documentation
See the docs folder for more details. Keep in mind that most of ginger is still experimental and definitely not ready for the spotlight.
Here is a list of the docs more or less in the order they should be read for a complete overview of the language: