wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Building a Simple Doctor Appointment System in Common Lisp

profile
Shubham Giri
Jul 16, 2025
0 Likes
0 Discussions
1 Reads

🧠 Introduction

When learning a new language, building real-world applications—no matter how simple—is a powerful way to understand its core features. In this post, we will implement a console-based doctor appointment scheduling system in Common Lisp. It will allow users to book, cancel, and view appointments using a clean menu-driven interface.


🛠️ Features Overview

View Available Time Slots


Book an Appointment


Cancel an Appointment


View All Booked Appointments


Exit the System


📦 The Core Components

Let’s walk through how each part of the code contributes to the functionality:


1. 📅 Defining Time Slots


(defparameter *time-slots*

'("9:00 AM" "10:00 AM" "11:00 AM" "12:00 PM"

"2:00 PM" "3:00 PM" "4:00 PM" "5:00 PM"))

These are our fixed time slots. The user can choose from these to book an appointment.


2. 📂 Creating the Appointments Table


(defparameter *appointments* (make-hash-table :test 'equal))

A hash table is used to store appointments, mapping each slot to a user's name.


3. 🔍 Viewing Available Slots


(defun view-available-slots ()

(format t "~%Available Slots:~%")

(dolist (slot *time-slots*)

(unless (gethash slot *appointments*)

(format t "~A~%" slot))))

This function filters out already booked slots and shows only the available ones.


4. 📥 Booking an Appointment


(defun book-appointment ()

;; code continues...

)

The user enters their name and picks a slot. The function validates the input and checks availability before booking.


5. ❌ Cancelling an Appointment


(defun cancel-appointment ()

;; code continues...

)

Users can cancel their appointments by providing their name. It searches the hash table and removes matching entries.


6. 📋 Viewing All Appointments


(defun view-appointments ()

;; code continues...

)

Prints a list of all booked slots along with the names of users who booked them.


7. 📱 User Interface - The Main Menu

(defun main-menu ()

;; loop with case options

)

A looping text interface that allows the user to interact with the system repeatedly until they choose to exit.




Comments ()


Sign in

Read Next

Data Acquisition in Cyber Forensics

Blog banner

?What Children Learn Between Activities: The Hidden Learning Moments in a Preschool Day

Blog banner

The Art Of Getting What You Want In Life....

Blog banner

AI & Data Science in Healthcare – Predicting diseases, medical imaging analysis

Blog banner

The Rise of Polo Tourism in the USA: How Travellers Are Blending Luxury Stays with Elite Sports

Blog banner

Yoga in INDIA and ABROAD

Blog banner

Operating system

Blog banner

Biometric Authentication and Privacy: Balancing Ethical Concerns

Blog banner

The application udemy

Blog banner

Types of Threads

Blog banner

The Power of Forensic Watermarking in the Fight Against Content Piracy

Blog banner

Memory Management

Blog banner

Memory management

Blog banner

Can a Water Flosser Replace Manual Flossing? Here’s What Dentists Say

Blog banner

Mumbai

Blog banner

AutoML: The Future of Automated Data Science

Blog banner

Memory Management

Blog banner

Virtual Machine

Blog banner

Pilgrimage at LOC: A privilege and a paradox

Blog banner

Why Friendship at Work is Important

Blog banner

Student Grade Calculator in LISP

Blog banner

Operating System

Blog banner

10 Signs your Computer has Virus

Blog banner

Tiranga - Abbas Haveliwala

Blog banner

Types of Threads

Blog banner

How Much Protein Do You Really Need Every Day?

Blog banner

Mental Health

Blog banner

MOVEMBER

Blog banner

De-Coding Love

Blog banner

Data Exfiltration

Blog banner

Dekkers Algorithm : Ensuring Safe Process Synchronization

Blog banner

Rules and Regulations of Networking: "Standards and Protocols" - Part 2

Blog banner

Soak knowledge and level up your intellectual potential!!!

Blog banner

MY MOST THRILLED TREK ..... BHAIRAVGAD

Blog banner

Every body is beautiful

Blog banner

Riddhi Miyani 53003220140

Blog banner

Is Social Media Marketing The Next Wave Of Digital Marketing?

Blog banner

Understanding Mobile Device Forensics

Blog banner

Lifestyle of a photographer

Blog banner

Balance

Blog banner

15 Interesting Facts about India

Blog banner

note taker app

Blog banner