application/octet-stream
•
944 B
•
32 lines
; Nujel - Copyright (C) 2020-2021 - Benjamin Vincent Schulenburg
; This project uses the MIT license, a copy should be included under /LICENSE
[def PI 3.14159]
[def π 3.14159]
[defmacro ++ [i]
"Increment I by 1 and store the result in I"
`[set! ~i [+ 1 ~i]]]
[defmacro -- [i]
"Decrement I by 1 and store the result in I"
`[set! ~i [+ -1 ~i]]]
[defun +x [α]
"Return a function that adds α to it's argument, useful for mapping"
[\ [β] [+ α β]]]
[defun >> [val amount]
"Shifts VAL by AMOUNT bits to the right"
[ash val [- amount]]]
[defun fib [i]
"Terribly inefficient, but, useful for testing the GC"
[if [< i 2] i
[+ [fib [- i 2]] [fib [- i 1]]]]]
[defun wrap-value [val min max] "Constrains VAL to be within MIN and MAX, wrapping it around"
[+ min [% [- val min] [- max min]]]]
[defmacro +1 [v]
`[+ 1 ~v]]