Skip to content

JameEnder/arcanya

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Arcanya

A little magical language 🧙‍♂️

What is Arcanya?

Arcanya is a interpreted LISP like language built in Rust.

It is a hobby project of mine that I created to learn more about the LISP family. I was frustrated with the syntax, so I created my own.

It supports:

  • Integers
  • Floats
  • Strings
  • Symbols
  • Functions
  • Builtins
  • Mapping
  • Folding (or reducing)
  • Filtering
  • Partial function application 😍
  • and more..

To try it out, just run

cargo run

Which starts a interactive Arcanya session.

Install

The only way for now to install is to:

git clone https://github.com/jameender/arcanya

cd arcanya

cargo run

Example code

You can print any variable using print

(print "hello world")

Defining global variables can be done with define

(define x 5)
(define y 7)

(+ x y)
; 12

Defining local variables can be done with let

(let x 5
	(let y 7
		(+ x y)
	)
)
; 12

Or by using let multiple with let*

(let* (
	(x 5)
	(y 7)
) (+ x y))
; 12

You can map over lists with map

(map
	(function (x) (* x 2))
	(1 2 3)
)
; (2 4 6)

And fold over lists with fold

(fold + 0 (1 2 3))
; 6

Concat strings with concat

(concat
	"Arcanya "
	"is "
	"gorgeous" "!"
)
; you can figure that out ;)

About

A little magical language

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages