Wiki
Clone wikiParen / Examples
Lotto 6/45
(defn shuffle (lst) (set len (length lst)) (for i 0 (- len 2) 1 (set ci (+ 1 i (floor (* (rand) (- len i 1))))) (set c (nth i lst)) (set (nth i lst) (nth ci lst)) (set (nth ci lst) c)) lst) (defn take (n lst) (set r (list)) (for i 0 (dec n) 1 (set r (cons (nth i lst) r))) r) (defn lotto () (set r (range 1 45 1)) (shuffle r) (take 6 r)) (prn (lotto))
eval-clause
(set *state* (quote ((a false) (b false) (c true) (d false)))) (set *clause* (quote (a (! b) c))) (defn eval-clause (clause state) (for i 0 (dec (length state)) 1 (set x (nth i state)) (eval (list set (nth 0 x) (nth 1 x)))) (eval (cons || clause))) (eval-clause *clause* *state*)
Fibonacci number
(defn fib (n) (if (< n 2) n (+ (fib (dec n)) (fib (- n 2)))))
dolist macro (similar to Common Lisp's dolist)
(defmacro dolist (sym lst expr ...) (for i 0 (dec (length lst)) 1 (set sym (nth i lst)) expr ...))
Updated