Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- 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: 2024-11-19T22:44:29.207Z (3 months ago)
- Topics: language, lisp, orion, programming-language
- Language: Rust
- Homepage:
- Size: 2.1 MB
- Stars: 238
- Watchers: 4
- Forks: 10
- 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.
![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.