This is a very simple Lisp-like language for learning purpose.
Code example:
(load "inc/stdio.lisp")
(let 'caesar_shift (fn ('message 'shift)
(each message (fn ('e)
(if (and (>= e 65) (<= e 90))
(+ 65 (% (+ (- e 65) shift) 26))
(if (and (>= e 97) (<= e 122))
(+ 97 (% (+ (- e 97) shift) 26))
e))))))
(let 'caesar_encode (fn ('message 'shift)
(caesar_shift message shift)))
(let 'caesar_decode (fn ('message 'shift)
(caesar_shift message (- 26 shift))))
(let 'decr "Hello world, this is a small test!")
(let 'encr (caesar_encode decr 1))
(println encr)
(println (caesar_decode encr 1))
Requires CMake and a C++17-compatible C++ compiler. Then run in project root:
cmake .
make
Notice: There might be issues with Windows devices! Especially the load
builtin might cause crashes due to path-conventions.
- FFI integration to load C/C++ code from SLICPP
- Add builtin function for user input