blob: 831bb31689431c721e529a870c4e7097d9c9e291 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
(defun gcd2 (a b)
(if (= b 0)
a
(gcd2 b (mod a b))))
(defun gcdn (&rest numbers)
(reduce #'gcd2 (rest numbers)
:initial-value (first numbers)))
; Command line access is different on different Lisps
(defun program-args ()
(or
#+SBCL (rest *posix-argv*)
#+CLISP *args*
;#+ECL (ext:command-args)
;#+CMU extensions:*command-line-words*
;#+LISPWORKS system:*line-arguments-list*
nil))
(write (apply #'gcdn
(map 'list #'parse-integer (program-args))
))
(fresh-line)
|