Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/wafelack/orion

Orion is a high level, purely functional programming language with a LISP based syntax.
https://github.com/wafelack/orion

language lisp orion programming-language

Last synced: about 6 hours ago
JSON representation

Orion is a high level, purely functional programming language with a LISP based syntax.

Awesome Lists containing this project

README

        

Orion
=====

---

Orion is a high level, purely functional programming language with a LISP based syntax.

![GitHub Repo stars](https://img.shields.io/github/stars/orion-lang/orion?color=%2320272c&style=for-the-badge)
![Continuous Build](https://img.shields.io/github/workflow/status/orion-lang/orion/Continuous%20Build?style=for-the-badge)
![Continuous Test](https://img.shields.io/github/workflow/status/orion-lang/orion/Continuous%20Test?label=TEST&style=for-the-badge)
![GitHub forks](https://img.shields.io/github/forks/orion-lang/orion?color=%232c2120&style=for-the-badge)

---

Features
--------

- Lightness: Orion source code fits under 3k SLOC and its binary is under 2MB.
- Portable: Orion code is run on a virtual machine, that avoids architecture-specific problems.
- Purely functional: Pattern matching, immutability, side effects control.
- Elegant: It embeds shorthands such as `'` for `(\ () )`, `[x y z]` for `(Cons x (Cons y (Cons z Nil)))` or `{ * }` for `(begin *)`.

Installation
------------

You will need: the Rust toolchain (1.50+), a "make" program, a POSIX shell (linked in `/bin/sh`) and Git.

```bash
$ git clone https://github.com/orion-lang/orion.git
$ cd orion/
$ chmod +x configure
$ ./configure
$ make
$ make install PREFIX=/wherever/you/want/
```

Documentation
-------------

You can find a detailed tutorial, the standard library, the core and the builtins documentation [here](docs/).

Quick Example
-------------

Factorial function:

```clojure
(def factorial (λ (n)
(match n
(0 1)
(_ (* n (factorial (- n 1)))))))
```

Performance Tests
-----------------

### `ack 3 3`

| Language | Average|Median |Amplitude|
|----------------------|--------|-------|---------|
| **Nixt** | 126ms | 121ms | 134ms |
|**Orion Interpreter** |76.106ms| 75ms | 21ms |
| **Orion VM** | 4.168ms| 4ms | 4ms |
| **CPython** | 0.516ms|0.482ms| 0.541ms |

Acknowledgments
---------------

Special thanks to [@Mesabloo](https://github.com/mesabloo) and [@felko](https://github.com/felko) for support and help about implementation details.

License
-------

This software and all associated items (assets, documentation, etc) are licensed under the GNU General Public License version 3.0 and higher.