All Projects → Wafelack → orion

Wafelack / orion

Licence: GPL-3.0 license
Orion is a high level, purely functional programming language with a LISP based syntax.

Programming Languages

rust
11053 projects
clojure
4091 projects
python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to orion

Prefect
The easiest way to automate your data
Stars: ✭ 7,956 (+3404.85%)
Mutual labels:  orion
Opserver
Stack Exchange's Monitoring System
Stars: ✭ 4,126 (+1717.62%)
Mutual labels:  orion
Orion
Mixin loader for Paper
Stars: ✭ 46 (-79.74%)
Mutual labels:  orion

Orion


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

GitHub Repo stars Continuous Build Continuous Test GitHub forks


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 '<expr> for (\ () <expr>), [x y z] for (Cons x (Cons y (Cons z Nil))) or { <expr>* } for (begin <expr>*).

Installation

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

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

Quick Example

Factorial function:

(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 and @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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].