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

IP ADDRESS

Blog banner

QUANTUM COMPUTING IN SECURITY:A GAME CHANGER IN DIGITAL WORLD

Blog banner

Paralysis/Paralysis Stroke

Blog banner

How covid-19 impacted Social media ad spend forecast globally

Blog banner

Note Taker App

Blog banner

Exploring Human Factors in Cyber Forensics Investigations.

Blog banner

The Peephole

Blog banner

Understanding Portion Control: How Much Food Do You Really Need?

Blog banner

ASANA- A Management System.

Blog banner

Data carving - using hex editor

Blog banner

Firewall

Blog banner

GraphX:- A graph processing tool

Blog banner

The Secure Software Development Life Cycle (SDLC)

Blog banner

Evolution of Operating Systems

Blog banner

Memory management

Blog banner

Developments in Modern Operating Systems

Blog banner

Memory Management

Blog banner

Security in Cloud Computing

Blog banner

PROCESS STATE:

Blog banner

What is a geographic information system (GIS)?

Blog banner

Life of a 2020-2021 student

Blog banner

Classification Vs Clustring? What's the diffrence?

Blog banner

EFT

Blog banner

RSA (Rivest-Shamir-Adelman) Algorithm

Blog banner

CRISP-DM Methodology

Blog banner

Zomato's Secret Digital Marketing Techniques!

Blog banner

Fashion marketing in india

Blog banner

OS assignment 3

Blog banner

OLA

Blog banner

Why Summer Break Is Important for Emotional and Cognitive Growth?

Blog banner

What is process

Blog banner

Getting to Kashmir: Alternative to the Jammu-Srinagar highway

Blog banner

Operating Systems

Blog banner

MENDELEY

Blog banner

Modern Operating System

Blog banner

Modern operating system

Blog banner

MEMORY HIERARCHY

Blog banner

How India made the GIS its Own, and its Use in Infrastructural Developments

Blog banner

How can denial-of-service(Dos) attacks be prevented?

Blog banner

GOOGLE

Blog banner

Virtual memory

Blog banner

Paging

Blog banner