From 47c813d6aeccc289dca3c34f9b6ea55771573d55 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Sun, 30 Oct 2022 23:19:41 +0200 Subject: Update Lisp --- gcd.lisp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'gcd.lisp') diff --git a/gcd.lisp b/gcd.lisp index 4bf5840..da24b5e 100644 --- a/gcd.lisp +++ b/gcd.lisp @@ -1,7 +1,8 @@ ; SYNOPSIS: ; # clisp gcd.lisp 11 22 33 121 +; # ecl --shell gcd.lisp 121 22 33 +; # gcl -f gcd.lisp 121 22 33 ; # sbcl --script gcd.lisp 121 22 33 -; (defun gcd2 (a b) (if (= b 0) @@ -12,18 +13,19 @@ (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* + #+ECL (ext:command-args) + #+GCL si::*command-args* + #+SBCL *posix-argv* nil)) -(write (apply #'gcdn - (map 'list #'parse-integer (program-args)) - )) +(defun numbers () + (remove nil + (map 'list (lambda (x) (parse-integer x :junk-allowed t)) + (program-args)))) + +(write (apply #'gcdn (numbers))) (fresh-line) -- cgit v1.2.3