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
2 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

Semaphores

Blog banner

Sagar Parikrama

Blog banner

Danger assessment in GIS

Blog banner

What is a Malware ?

Blog banner

Who decides your overthinking, anyway?

Blog banner

1 Dentist in Maroubra, Sydney and her 10 obsessions

Blog banner

Article on Team Work

Blog banner

Life of an army person

Blog banner

I Personally

Blog banner

How to lose belly fat

Blog banner

Animal’s have my heart

Blog banner

Data Security must be your Priority!

Blog banner

What is Password Cracking ? and it's Techniques.

Blog banner

Procedure For Corporate High-Tech Investigations

Blog banner

security controls

Blog banner

A-B-C of Networking: Part-1 (Basics)

Blog banner

Kernel Memory Allocation In Linux.

Blog banner

What does the Australian summer have in store for your oral health?

Blog banner

Deadlock

Blog banner

Dekkers Algorithm : Ensuring Safe Process Synchronization

Blog banner

Working with Sniffers for monitoring network communication

Blog banner

SPAM

Blog banner

Service Design Principles

Blog banner

Developments in Modern Operating Systems

Blog banner

WHAT IS TWITTER AND HOW DOES IT WORK

Blog banner

Improving defences Proxy Device(defense in depth)

Blog banner

VIRTUAL MACHINES

Blog banner

Phishing

Blog banner

BLOCKCHAIN MACHANISM

Blog banner

Koinex is shutting down and here is how you can withdraw...

Blog banner

APACHE KAFKA

Blog banner

indian premier league

Blog banner

Different types of scam Fraud

Blog banner

Virtual memory

Blog banner

PHISHING

Blog banner

Virtual memory in windows

Blog banner

Power of words

Blog banner

How covid-19 impacted Social media ad spend forecast globally

Blog banner

Privacy LAWs in IT

Blog banner

Stay Close To Adventure In Arcadia, Florida At Oak Tree Hotel

Blog banner

Landslide Hazard

Blog banner

File system implementation

Blog banner