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: 16 days ago
JSON representation
Orion is a high level, purely functional programming language with a LISP based syntax.
- Host: GitHub
- URL: https://github.com/wafelack/orion
- Owner: Wafelack
- License: gpl-3.0
- Created: 2021-01-31T09:47:17.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-10-21T01:36:07.000Z (over 2 years ago)
- Last Synced: 2025-03-29T11:07:06.761Z (23 days ago)
- Topics: language, lisp, orion, programming-language
- Language: Rust
- Homepage:
- Size: 2.1 MB
- Stars: 236
- Watchers: 2
- Forks: 9
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
Orion
=====---
Orion is a high level, purely functional programming language with a LISP based syntax.



---
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.