Roman is a lisp like programming language based on a very simple premise.
That extending lisp to higher dimensions, we will end up with a programming language that is similar to natural languages like English but executable. Hence allowing us to think "grander thoughts" than a 2-dimensional programming language.
The core idea is simple enough that it fits in a tweet:
We want our language to be able to do something like this:
- Define x to be greater than 5.
x > 5 .
Note that this is different from "asking" the computer if x is greater than 5.
- That's a query in Roman and you write it as:
x > 5 ?
to which, now it should say
true since we defined it as a fact when we evaluated (1) just before this.🔥
Of course, this is much like logic programming in Prolog.
The readme goes in-depth into developing this idea.
So I recommend you read the README first (~ 2400 words or 12 mins) before playing with the interpreter prototype.
Warning: My prototype implementation of Roman's interpreter is not quite capable yet to run prolog like logical deductions, but some of the other ideas in the README is demonstrated in the code.
The whole code is also pretty small (~500 lines of rust).
Please do check it out and share your feedback! 😊
PS: I was unable to attach the team repl that we used, so I cloned another repl into my personal account to add to this submission. You can find the original team repl here: https://repl.it/@romanlang/rome