Slope, aka SLOum's Programming Environment, is a programming language created in 2021 by Sloum.
git clone https://git.rawtext.club/slope-lang/slope
#539on PLDB | 2Years Old |
A small s-expression based programming language
; hello world
(define greeting "Hello")
(display greeting ", world!\n")
define set! lambda cond case if for load load-mod load-mod-file usage macro eval apply and or begin begin0 exists coeval
Feature | Supported | Token | Example |
---|---|---|---|
Conditionals | ✓ | (if positive? 1 -1) |
|
Zero-based numbering | ✓ | ||
Switch Statements | ✓ | (case my-num (5 (display "Five!")) (0 (display "Zero!")) (else (display "Not an option"))) |
|
Variadic Functions | ✓ | (lambda (...) (apply + ...)) |
|
Case Sensitivity | ✓ | ||
File Imports | ✓ | (load-mod my-module) (load "examples/test.slo") |
|
Garbage Collection | ✓ | ||
Strings | ✓ | " | "hello world" `hello wold` |
canUseQuestionMarksAsPartOfIdentifier | ✓ | (define yes? #t) |
|
Namespaces | ✓ | (ns-create 'hello-world) (ns-define 'hello-world 'print (lambda () (display "hello world!\n"))) (hello-world::print) |
|
hasBuiltInRegex | ✓ | (regex-match? `[0-9]+` "Hello 12345") (regex-replace `Hello, (\w+)!$` "Hello, world!" "Goodbye, $1!") |
|
Comments | ✓ | ; I am a comment |
|
Line Comments | ✓ | ; | ; I am a comment |
Booleans | ✓ | #t #f | (define open? #t) |
Bitwise Operators | ✓ | (& 0xFF 0x1B) |
|
Prefix Notation | ✓ | (+ 1 2) |
|
Macros | ✓ | ||
Lispy | ✓ | ||
Increment and decrement operators | X | ||
Gotos | X | ||
Semantic Indentation | X |