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

Modern Operating Systems

Blog banner

SMARTSHEET

Blog banner

On-Page SEO

Blog banner

Cloud Computing

Blog banner

RAID

Blog banner

Caching windows

Blog banner

Interrupts in operating system.

Blog banner

File management

Blog banner

Should you be using a mouthwash? Know from the experts

Blog banner

Modern Operating System

Blog banner

The War With Cold On Earth

Blog banner

Life of an army person

Blog banner

Memory

Blog banner

Deadlock

Blog banner

Indian Culture and Tradition

Blog banner

Virtual Machine

Blog banner

Different types of scam Fraud

Blog banner

What is M-commerce and how it's work

Blog banner

You'll get to know about Pankaj Negi

Blog banner

Palm Vein Biometric Technology; Contactless vein authentication

Blog banner

Disk Management

Blog banner

EMAIL INVESTIGATION

Blog banner

Mail merge

Blog banner

File management

Blog banner

How To Setup DVWA Using XAMPP on Windows

Blog banner

Never give up

Blog banner

Types of Threads

Blog banner

Pilgrimage at LOC: A privilege and a paradox

Blog banner

How to lose belly fat

Blog banner

Virtual Memory

Blog banner

Platonic Solids

Blog banner

KASHMIR TRIPS

Blog banner

Short note on expert system

Blog banner

What is the point of living if we can die at any moment of our lives ?

Blog banner

Atlantis - The Lost Island.........

Blog banner

The Right way of cooking

Blog banner

Time Series Analysis

Blog banner

Personalized Movie Recommendations with Data Science

Blog banner

How Cyber Forensics use in AI

Blog banner

Firewall

Blog banner

E-learning in today's world

Blog banner

CYBER FORENCIS: PAST, PRESENT AND FUTURE.

Blog banner