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

Uniprocessor Scheduling

Blog banner

Making Money through Instagram

Blog banner

THE ACTORS LIFE

Blog banner

Revolutionary AI Tool: ChatGPT

Blog banner

Meshoo

Blog banner

Race Condition in Operating Theatre

Blog banner

Microsoft powerpoint presentation

Blog banner

Random Forests

Blog banner

Data Exfiltration

Blog banner

Ethical Hacking

Blog banner

Image Steganalysis in Digital Forensics

Blog banner

E-Governance

Blog banner

DATA VAULT

Blog banner

Throttle engine ’Sneak peek into the future’

Blog banner

Child labour

Blog banner

SQL Injection Techniques

Blog banner

PYTHON

Blog banner

Solitary Play Activities for Preschoolers: Types and Benefits

Blog banner

Brilliant WhatsApp Features Upcoming in 2023

Blog banner

Service design process in ITSM

Blog banner

Precision-Recall in Data Science

Blog banner

EdTech (Education Technology)

Blog banner

K-means use cases

Blog banner

Install Ubuntu Easily

Blog banner

Internet of Things

Blog banner

Decision Tree: A Diagram Model

Blog banner

5 Stages of Digital Marketing

Blog banner

Mumbai Metro 3

Blog banner

Risk factors in service transistion

Blog banner

Crypto tax evasion

Blog banner

DATA SCIENCE IN BUSINESS AND MARKETING

Blog banner

Virtual machine.

Blog banner

Virtual memory

Blog banner

Unlocking Success: Mastering Google Ads Strategies

Blog banner

OPERATING SYSTEM

Blog banner

DIGITAL ECONOMY

Blog banner

Analysis of Digital Evidence In Identity Theft Investigations

Blog banner

Synchronization

Blog banner

Mumbai famous street food

Blog banner

Pooja Silver

Blog banner

WomenEmpowerment

Blog banner

" THE ANSWERS THAT LED INDIAN BEAUTIES TO THE MISS UNIVERSE HISTORIC WIN. "

Blog banner