RosettaCodeData/Task/Combinations-and-permutations/Common-Lisp/combinations-and-permutations.lisp

17 lines
346 B
Common Lisp
Raw Permalink Normal View History

2016-12-05 22:15:40 +01:00
(defun combinations (n k)
2018-06-22 20:57:24 +00:00
(cond ((or (< n k) (< k 0) (< n 0)) 0)
((= k 0) 1)
(t (do* ((i 1 (1+ i))
(m n (1- m))
(a m (* a m))
(b i (* b i)))
((= i k) (/ a b))))))
2016-12-05 22:15:40 +01:00
(defun permutations (n k)
2018-06-22 20:57:24 +00:00
(cond ((or (< n k) (< k 0) (< n 0)) 0)
((= k 0) 1)
(t (do* ((i 1 (1+ i))
(m n (1- m))
(a m (* a m)))
((= i k) a)))))