orion-cli

Crates.ioorion-cli
lib.rsorion-cli
version0.1.0
sourcesrc
created_at2021-01-31 12:37:14.582192
updated_at2021-02-03 11:32:45.222903
descriptionA lisp inspired strongly and statically typed programming language
homepage
repositoryhttps://github.com/wafelack/orion
max_upload_size
id348854
size925,805
Wafelack (Wafelack)

documentation

README

Orion

Orion is a lisp inspired statically typed programming language written in Rust


Install

  • Download binary from the releases.
  • Run cargo install orion-cli

Examples

Factorial

(define factorial (lambda (n) {
    (var toret 1)
    (var i 2)
    (while (<= i n) {
        (set toret (* toret i))
        (set i (+ i 1))
    })
    (return toret)
}))

More or less game

(math:initRng)
(define toGuess (math:rand 1 100))
(var guessed 0)
(var tries 0)

(while (!= guessed toGuess) {
  (set tries (+ tries 1))
  (set guessed (static_cast "int" (input "Input number: ")))
  (if (< guessed toGuess) {
    (print "More !")
  } {
    (if (> guessed toGuess) {
      (print "Less !")
    })
  })
})
(print (+ "Well done, you found the number in " (+ (static_cast "string" tries) " tries")))

Documentation

The standard library docs are available on the wiki

:construction: The GETTING_STARTED.md is currently work in progress.

Performances

Ackermann(3, 3) - 500 runs

Language Total Average Median Amplitude
Nixt 63145ms 126ms 121ms 134ms
Orion 4398ms 8ms 8ms 13ms
Python 1.1e-4ms 2.24e-7ms 2.12e-7 3.77e-7ms

Pushing 1000 numbers to an array - 500 runs

Language Total Average Median Amplitude
Nixt 6602ms 13ms 12ms 29ms
Orion 5473ms 10ms 10ms 22ms
Python 5.44e-5ms 1.08e-7ms 9.98e-8ms 1.61e-7ms
Commit count: 402

cargo fmt