Skip to content
forked from Wafelack/orion

Orion is a high level, purely functional Lisp dialect.

License

Notifications You must be signed in to change notification settings

bryanhonof/orion

 
 

Repository files navigation

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.

About

Orion is a high level, purely functional Lisp dialect.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 92.0%
  • Clojure 6.9%
  • Python 1.1%