aboutsummaryrefslogtreecommitdiff
path: root/main.lisp
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-02-10 06:28:40 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-02-11 00:40:19 +0000
commit5a48b66dd649a4dafce56749487f8060637e452c (patch)
treea392fdbcf8c42c657b174cd868bf1ef5df57608d /main.lisp
parent6b60c5065b55b8886285afba01021a531645bd38 (diff)
downloadcantedraw-5a48b66dd649a4dafce56749487f8060637e452c.tar.gz
cantedraw-5a48b66dd649a4dafce56749487f8060637e452c.tar.bz2
cantedraw-5a48b66dd649a4dafce56749487f8060637e452c.zip
Extract parsing logic from read-integers into parse-integers
Diffstat (limited to 'main.lisp')
-rw-r--r--main.lisp15
1 files changed, 8 insertions, 7 deletions
diff --git a/main.lisp b/main.lisp
index 674d09c..26ef67a 100644
--- a/main.lisp
+++ b/main.lisp
@@ -20,21 +20,22 @@
(in-package :main)
-(fn read-input (&optional (prompt "> "))
- (-> (&optional string) string)
+(fn read-input (&optional (prompt "> ")) (-> (&optional string) string)
(format t "~a" prompt)
(force-output)
(read-line))
-(fn read-integers ()
- (-> nil list)
- (->> (read-input "Enter numbers: ")
+(fn parse-integers (input) (-> (string) list)
+ (->> input
(uiop:split-string)
(mapcar (lambda (s) (parse-integer s :junk-allowed t)))
(remove-if #'null)))
-(fn read-until-integers ()
- (-> nil list)
+(fn read-integers () (-> nil list)
+ (->> (read-input "Enter numbers: ")
+ parse-integers))
+
+(fn read-until-integers () (-> nil list)
(let ((inp (read-integers)))
(while (null inp)
(format t "Need at least one integer...~%")