


This program allows a user to manage a simple to-do list. The program does:
Program:
(defvar *todo-list* '())
(defun add-task ()
(format t "Enter new task: ")
(let ((task (read-line)))
(push task *todo-list*)
(format t "Task added successfully.~%")))
(defun view-tasks ()
(if (null *todo-list*)
(format t "No tasks in the list.~%")
(progn
(format t "~%--- To-Do List ---~%")
(let ((i 1))
(dolist (task (reverse *todo-list*))
(format t "~A. ~A~%" i task)
(incf i))))))
(defun todo-menu ()
(loop
(format t "~%--- To-Do Menu ---~%")
(format t "1. Add Task~%")
(format t "2. View Tasks~%")
(format t "3. Exit~%")
(format t "Choose an option: ")
(let ((choice (read)))
(case choice
(1 (add-task))
(2 (view-tasks))
(3 (progn (format t "Exiting...~%") (return)))
(t (format t "Invalid option.~%"))))))
;; Start the to-do list manager
(todo-menu)
Output: