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

Memory Management

Blog banner

MEMORY HIERARCHY

Blog banner

SPAM

Blog banner

Processes : Process description and control

Blog banner

Importance of education

Blog banner

Man VS Nature

Blog banner

BharatPe

Blog banner

Why Summer Break Is Important for Emotional and Cognitive Growth?

Blog banner

The most common internet security threats

Blog banner

Virtual Machine

Blog banner

Sweet Mango Murabba

Blog banner

What Function Does SEO Serve in Digital Marketing?

Blog banner

Introduction my self

Blog banner

Super Garlicky Tomato Soup with Smashed White Beans

Blog banner

File Organization and Access

Blog banner

USPS mail

Blog banner

How to Encrypt and Decrypt Using GNU PGP

Blog banner

Microsoft powerpoint presentation

Blog banner

Improving the Accuracy of GPS and GNSS

Blog banner

memory management

Blog banner

Layers Of Blockchain

Blog banner

How chatGPT Is Changing SEO: What Every Business Needs to Know in 2026

Blog banner

Cache memory

Blog banner

Health is Wealth

Blog banner

Man is free by the birth .

Blog banner

Why You Should Not Use Free VPNs

Blog banner

VIRTUAL MACHINES

Blog banner

Modern operating system

Blog banner

Top 5 Benefits of Artificial Intelligence

Blog banner

E-security systems | CCTV

Blog banner

Scheduling

Blog banner

Understanding the 4 Types of Learning Methods in Early Childhood

Blog banner

What is process

Blog banner

Blockchain Transactions

Blog banner

What is Vishing?

Blog banner

APACHE KAFKA

Blog banner

ADD A SPICE TO YOUR LIFE.

Blog banner

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

Blog banner

Reconnaissance

Blog banner

Global versus Indian Mental Health Differences

Blog banner

objectives and function of operating system

Blog banner

A Short History of GIS

Blog banner