Skip to content

Interpreter for a Scheme-esque language with semantic whitespace

Notifications You must be signed in to change notification settings

avandolder/Sindent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sindent

sindent is a Scheme and Python inspired programming language, with an interpreter written in Rust. Similar to Scheme, it is a homoiconic functional programming language, based around a form of S-expressions; however, cruicially, it is extended with semantic whitespace, in order to cut down on the number of redundant parentheses, and make the languge more approachable. Both Scheme and Python are often considered ideal languages for beginner programmers, Scheme due to it's simplicity and functional, more math-like semantics, and Python due to it's syntactic usage of whitespace both enforcing good habits and allowing users to write basic programs without being turned off by a cacophony of symbols and keywords.

As an example, take the following Scheme example:

(define (factorial n)
    (if (= n 0)
        1
        (* n (factorial (- n 1)))))

The sindent program could be translated as the following:

fun factorial (n)
  if (= n 0)
    1
    * n (factorial (- n 1))

About

Interpreter for a Scheme-esque language with semantic whitespace

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages