Nitrogen Programming Language
Nitrogen is a Lisp-based programming language I created to learn fundamentally how programming languages work. It is not designed to be used in any sort of production environment. It’s very minimal, but usable. It’s based off the book Build Your Own Lisp.
On this page you will be able to find the docmentation for the builtin functions as well as the Standard Library. You’ll also find some examples to play with.
You can find the source code for the Nitrogen interpreter at: github.com/lfkeitel/nitrogen
Language Fundamentals
Here is where the basics of Nitrogen will be posted.
Language Core
The following words are reserved keywords for builtin functions or operators, or are used in the core library. This means they cannot be redefined using the (def) functions.
Internal - Functions and Operators
\ | = | const | def | error | eval |
exit | head | join | list | load | |
tail | undef |
Internal - Arithmatic and Comparison Operators
+ | - | * | / | % | if |
== | != | > | < | >= | <= |
Core Library - Language Constructs
nil | true | false | pfun | fun |
do | not | or | and | ++ |
-- | select | case | otherwise |
Core Library
Core Library - Functions (Note: These can be undefined. They will eventually be implemented in the interpreter directly but for now are written in Nitrogen.)
curry | drop | drop-while | elem | filter |
foldl | foldr | fst | init | last |
len | lookup | map | nth | pack |
product | reverse | snd | split | sum |
take | take-while | trd | uncurry | unpack |
unzip | zip |
Standard Library
This is where you’ll eventually find documentation for the Standard Library.
Examples
Here you will find examples of the language in action.