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

virtual machine

Blog banner

Deadlock

Blog banner

Impact of social media on the human life

Blog banner

Deadlock and Starvation

Blog banner

Deadlock and Starvation

Blog banner

SQL Injection practice on DVWA

Blog banner

THE INPACT OF SOCIAL MEDIA!

Blog banner

How Puppet Shows and Role Play Teach Empathy to Preschoolers

Blog banner

child Labour

Blog banner

Hacking

Blog banner

Life lesson

Blog banner

Rapido

Blog banner

Starvation

Blog banner

Apache Kafka

Blog banner

MODERN OPERATING SYSTEM

Blog banner

Education?

Blog banner

Email Privacy

Blog banner

Why Does Hierarchy Still matter in Organizations?

Blog banner

Retiring ISS

Blog banner

Next time you click on "Remind me later", think twice!

Blog banner

Open Source Project By Google

Blog banner

Security Breaches in Stock market trading

Blog banner

Mendeley (management software)

Blog banner

What is E-commerce

Blog banner

A Short History of GIS

Blog banner

What is metaverse?

Blog banner

Service design process in ITSM

Blog banner

Danger assessment in GIS

Blog banner

Electronic Funds Transfer

Blog banner

Importance Of Blockchain

Blog banner

Perfect Moments to Wear a Rich Patola Design Outfit

Blog banner

Khau Galli – Vile Parle

Blog banner

Logical and physical address

Blog banner

Operating system

Blog banner

The Peephole

Blog banner

What is HTML?

Blog banner

Why we should do reading

Blog banner

Mango Raisin Chutney (sweet mango raisin spread)

Blog banner

Utilizing Data-Hiding and Retrieval Techniques in Cyber Forensics

Blog banner

Uniprocessor and Types

Blog banner

Memory Management

Blog banner

Respondo Launches Revolutionary Video Discussion App

Blog banner