diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-02-09 12:36:40 +0000 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-02-11 00:40:19 +0000 |
commit | bd47029bd83f81ea7ce5fbcc7f9f711a32ba00ca (patch) | |
tree | 58aafcbfd38956f58fc1cf5774afbaa1c4efb715 | |
parent | 4977b427d840de3390b802cef297b7c233fe2436 (diff) | |
download | cantedraw-bd47029bd83f81ea7ce5fbcc7f9f711a32ba00ca.tar.gz cantedraw-bd47029bd83f81ea7ce5fbcc7f9f711a32ba00ca.tar.bz2 cantedraw-bd47029bd83f81ea7ce5fbcc7f9f711a32ba00ca.zip |
Implement a program that reads some integers then prints their sum
Allows junk, and doesn't crash horribly.
-rw-r--r-- | main.lisp | 17 |
1 files changed, 15 insertions, 2 deletions
@@ -25,6 +25,19 @@ (force-output) (read-line)) +(defun read-integers () + (->> (read-input "Enter numbers: ") + (uiop:split-string) + (mapcar (lambda (s) (parse-integer s :junk-allowed t))) + (remove-if #'null))) + +(defun read-until-integers () + (let ((inp (read-integers))) + (while (null inp) + (format t "Need at least one integer...~%") + (setq inp (read-integers))) + inp)) + (defun start () - (->> (read-input "Enter name: ") - (format t "Hello, ~a!~%"))) + (--> (read-until-integers) + (format t "~a = ~a~%" (cons '+ _) (reduce #'+ _)))) |