23 lines
439 B
Common Lisp
23 lines
439 B
Common Lisp
;; Common Lisp
|
|
|
|
(defun range (max &key (min 0) (step 1))
|
|
(loop for n from min below max by step
|
|
collect n))
|
|
|
|
(mapcar #'(lambda (x) (+ x 1)) (range 10))
|
|
|
|
(defun factoriali (n)
|
|
(reduce #'* (range (+ n 1) :min 1 :step 1)))
|
|
|
|
(defun factorialr (n)
|
|
(cond ((= n 1) 1)
|
|
(t (* n (factorialr (- n 1))))))
|
|
|
|
|
|
;; Clojure
|
|
(defn factorial [n]
|
|
(reduce *' (range 1 (+ n 1))))
|
|
|
|
(defn expt [n x]
|
|
(reduce *' (repeat x n)))
|