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

RAID

Blog banner

How to grow followers on Instagram business account?

Blog banner

Social Engineering Deceptions and Defenses

Blog banner

Palm Vein Biometric Technology; Contactless vein authentication

Blog banner

Improving defences Proxy Device(defense in depth)

Blog banner

Components of GIS

Blog banner

Whatsapp Messenger

Blog banner

What makes Nugget RC Racing Florida’s Most Exciting Racing Events?

Blog banner

Guidelines for a Low sodium Diet.

Blog banner

The IT Service Lifecycle

Blog banner

semaphores in os

Blog banner

Solitary Play Activities for Preschoolers: Types and Benefits

Blog banner

Memory Management

Blog banner

Steganography and Steganalysis

Blog banner

Development Of Modern Operating System

Blog banner

Why Mumbai Professionals Are Switching Back to Home-Style Tiffin Meals

Blog banner

undefined

Blog banner

Concept and definition of m-commerce

Blog banner

SQL Injection Techniques

Blog banner

Mumbai Metro 3

Blog banner

5 People who claimed to have Time Traveled

Blog banner

Deadlock and Starvation

Blog banner

Decoding the Weave — How to Identify Original Patola Art on a Fabric

Blog banner

Virtual Machine

Blog banner

Should you be using a mouthwash? Know from the experts

Blog banner

How to feel Happy everyday day

Blog banner

"Mahakali cave"

Blog banner

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

Blog banner

Memory Management

Blog banner

Fault Tolerance in an Operating System

Blog banner

Cycling

Blog banner

My First Trek - Sondai, Karjat - Shoaib Malik

Blog banner

EVOLUTION OF THE MIRCOPROCESSOR

Blog banner

Importance of Morning Routines for Students During the Festive Season

Blog banner

Jira service Management

Blog banner

Confidence Building Activities for the New School Year

Blog banner

Raid

Blog banner

Security in Operating Systems

Blog banner

The New Rules of UI/UX Design Every Website Must Follow in 2026

Blog banner

GraphQL

Blog banner

Article on Zoho Corporation

Blog banner

Partnership in Learning: How Parent Involvement Shapes a Child’s Early Education

Blog banner