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))