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

Importance Of Time

Blog banner

Memory management and virtual memory

Blog banner

Memory Management

Blog banner

Zomato (Income Sources)

Blog banner

Memory Management

Blog banner

A-B-C of Networking: Part-2 (Components)

Blog banner

What is Spyware? and examples of them.

Blog banner

OPERATING SYSTEM OBJECTIVES AND FAULT TOLERENCE.

Blog banner

Explaining Buffer Overflow with Example

Blog banner

Mumbaicha Dabbawalla

Blog banner

Direct Memory Access

Blog banner

Meal Maharaj — 3 CP, 5 CP, 8 CP. Same Love, Different Portions

Blog banner

Patola Outfits for the Modern Wardrobe: Reviving Indian Handloom in Style

Blog banner

Remote Work in 2026

Blog banner

10 Things To Do On Valentine's Day If You're Single

Blog banner

File management -disha parekh

Blog banner

I/O Management and Disk Scheduling

Blog banner

Working with Sniffers for monitoring network communication

Blog banner

Memory Management

Blog banner

15 Interesting Facts about India

Blog banner

Memory management

Blog banner

Bots and Cyber Security

Blog banner

Web browser forensics:Tools,Evidence collection and analysis

Blog banner

OPERATING SYSTEM OBJECTIVES AND FUNCTIONS

Blog banner

Human factor, a critical weak point in the information security of an organization’s IOT

Blog banner

Data Analytics in Data Science

Blog banner

Benefits of yoga and meditation

Blog banner

THREADS (assignment 1)

Blog banner

CONCURRENCY

Blog banner

Threats To Computer System

Blog banner

Memory hierarchy

Blog banner

Different types of scam Fraud

Blog banner

INTRODUCTION TO C#

Blog banner

Thumb Sucking: When It’s Normal and When It Becomes a Dental Problem

Blog banner

Policies for Service Transition

Blog banner

Risk management in IT

Blog banner

“Shot on iPhone” : A campaign by Apple that turned into a prodigy

Blog banner

You Get Everyone, But No One Gets You: The Lonely Side of High Emotional Intelligence

Blog banner

The Joy of Giving: How Festivals Teach Children Empathy and Gratitude

Blog banner

Memory Management

Blog banner

Interesting fact about kangaroo.

Blog banner

Preparing Students for Higher Education: How International Schools Shape Future Success

Blog banner