From 5a48b66dd649a4dafce56749487f8060637e452c Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Mon, 10 Feb 2025 06:28:40 +0000 Subject: Extract parsing logic from read-integers into parse-integers --- main.lisp | 15 ++++++++------- 1 file 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...~%") -- cgit v1.2.3-13-gbd6f