From 4c27e7d5c1bf118d62da28e2be9a0983022190e3 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Fri, 14 Feb 2025 15:12:10 +0000 Subject: cantedraw.lisp -> main.lisp --- cantedraw.asd | 4 ++-- cantedraw.lisp | 49 ------------------------------------------------- main.lisp | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ packages.lisp | 2 +- 4 files changed, 52 insertions(+), 52 deletions(-) delete mode 100644 cantedraw.lisp create mode 100644 main.lisp diff --git a/cantedraw.asd b/cantedraw.asd index b86503f..37be1d5 100644 --- a/cantedraw.asd +++ b/cantedraw.asd @@ -2,10 +2,10 @@ :components ((:file "packages") (:file "lib.macros") (:file "lib.functions") - (:file "cantedraw")) + (:file "main")) :build-operation "program-op" :build-pathname "bin/cantedraw" - :entry-point "cantedraw:start") + :entry-point "main:start") #+sb-core-compression (defmethod asdf:perform ((o asdf:image-op) (c asdf:system)) diff --git a/cantedraw.lisp b/cantedraw.lisp deleted file mode 100644 index 4380d8a..0000000 --- a/cantedraw.lisp +++ /dev/null @@ -1,49 +0,0 @@ -;;; cantedraw.lisp - 2025-02-11 - -;; Copyright (C) 2025 Aryadev Chavali - -;; This program is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -;; FOR A PARTICULAR PURPOSE. See the GNU General Public License Version 2 for -;; details. - -;; You may distribute and modify this code under the terms of the GNU General -;; Public License Version 2, which you should have received a copy of along with -;; this program. If not, please go to . - -;;; Commentary: - -;; Implementation of `cantedraw' package. Defines the entrypoint of the program, -;; handling any input from the user and passing it into the system. - -;;; Code: - -(in-package :cantedraw) - -(fn read-input (&optional (prompt "> ")) (-> (&optional string) string) - (format t "~a" prompt) - (force-output) - (read-line)) - -(fn parse-integers (input) (-> (string) list) - (->> input - uiop:split-string - (mapcar #'parse-integer*) - (remove-if #'null))) - -(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...~%") - (force-output) - (setq inp (read-integers))) - inp)) - -(defun start () - (--> (read-until-integers) - (cons '+ _) - (format t "~a = ~a~%" _ (eval _)))) diff --git a/main.lisp b/main.lisp new file mode 100644 index 0000000..32a0088 --- /dev/null +++ b/main.lisp @@ -0,0 +1,49 @@ +;;; main.lisp - 2025-02-11 + +;; Copyright (C) 2025 Aryadev Chavali + +;; This program is distributed in the hope that it will be useful, but WITHOUT +;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +;; FOR A PARTICULAR PURPOSE. See the GNU General Public License Version 2 for +;; details. + +;; You may distribute and modify this code under the terms of the GNU General +;; Public License Version 2, which you should have received a copy of along with +;; this program. If not, please go to . + +;;; Commentary: + +;; Implementation of `main' package. Defines the entrypoint of the program, +;; handling any input from the user and passing it into the system. + +;;; Code: + +(in-package :main) + +(fn read-input (&optional (prompt "> ")) (-> (&optional string) string) + (format t "~a" prompt) + (force-output) + (read-line)) + +(fn parse-integers (input) (-> (string) list) + (->> input + uiop:split-string + (mapcar #'parse-integer*) + (remove-if #'null))) + +(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...~%") + (force-output) + (setq inp (read-integers))) + inp)) + +(defun start () + (--> (read-until-integers) + (cons '+ _) + (format t "~a = ~a~%" _ (eval _)))) diff --git a/packages.lisp b/packages.lisp index 7c77f50..b2a6760 100644 --- a/packages.lisp +++ b/packages.lisp @@ -32,6 +32,6 @@ :range :take :split :rev-map)) -(defpackage cantedraw +(defpackage main (:use :cl :lib.macros :lib.functions) (:export :start)) -- cgit v1.2.3-13-gbd6f