Login
7 branches 0 tags
Benjamin Vincent Schulenburg Better docs be73347 3 years ago 906 Commits
nujel / stdlib / math / math.nuj
;;; Nujel - Copyright (C) 2020-2021 - Benjamin Vincent Schulenburg
;;; This project uses the MIT license, a copy should be included under /LICENSE
;;;
;;; Some convenient math functions and constants

[def PI 3.141592653589793]
[def π PI]

[defn inc [x]
      :inline
      "Return a number 1 greater than x"
      [+ 1 x]]

[defmacro inc! [i v]
          "Decrement I by V (defaults to 1) and store the result in I"
          `[set! ~i [+ ~i ~[or v 1]]]]

[defmacro dec! [i v]
          "Decrement I by V and store the result in I"
          `[set! ~i [- ~i ~[or v 1]]]]

[defn +x [α]
      "Return a function that adds α to it's argument, useful for mapping"
      [fn [β]
          [+ α β]]]

[defn radians [degrees]
      "Convert a quantity in degrees to radians"
      [/ [* π degrees] 180.0]]