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

WHAT IS SNAPCHAT AND HOW DOES IT WORK?

Blog banner

Session Hijacking

Blog banner

Why is ITSM important in IT organization?

Blog banner

Social engineering in cyber security

Blog banner

Modern operating systems (OS)

Blog banner

Image Steganalysis in Digital Forensics

Blog banner

Importance of self defence for girls

Blog banner

Virtual machine.

Blog banner

RAID

Blog banner

Procedure For Corporate High-Tech Investigations

Blog banner

Why Festivals Are the Best Classrooms for Young Minds?

Blog banner

Famous Indian dishes that where misunderstood to be Indian

Blog banner

What is metaverse?

Blog banner

Cross site scripting Attack

Blog banner

Study on cyber and network forensic in computer security management

Blog banner

SmartData Collective: Data Science aur Analytics ki Duniya

Blog banner

5 Stages of Digital Marketing

Blog banner

Zero-Day Attack

Blog banner

Malicious softwares

Blog banner

Creating Digitally Signed Document

Blog banner

Music helps reduce stress

Blog banner

Fitness

Blog banner

Memory Management

Blog banner

The seven-step improvement process

Blog banner

Hash password! Is it really secured?

Blog banner

How to Encrypt and Decrypt Using GNU PGP

Blog banner

Types Of Interrupt

Blog banner

Article on Team Work

Blog banner

Article on Fresh Book

Blog banner

Deadlock

Blog banner

Blockchain

Blog banner

Functions of Operating System

Blog banner

Hypothesis Testing in Data Science

Blog banner

What is process

Blog banner

What is thread and alse multithreading

Blog banner

Depression

Blog banner

Types of Hackers

Blog banner

IT Service Continuity Management

Blog banner

Introduction to Solidity Programming for Blockchain Development

Blog banner

Having passion in life

Blog banner

Article on different management system

Blog banner

Threads

Blog banner