Extract parsing logic from read-integers into parse-integers

This commit is contained in:
2025-02-10 06:28:40 +00:00
parent 6b60c5065b
commit 5a48b66dd6

View File

@@ -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...~%")