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

Excel records

Blog banner

Importance of education

Blog banner

OLA

Blog banner

15 Websites that will make your life easier ...!!!

Blog banner

Ubiquitous Computing

Blog banner

Diwali

Blog banner

HOW CAN SOCIAL MEDIA MAKE YOU HAPPIER?

Blog banner

Paddle Through Paradise: The Best Kayak Launch Points Near Arcadia

Blog banner

Cache Memory in Operating Systems

Blog banner

What is Password Cracking ? and it's Techniques.

Blog banner

Whatsapp Messenger

Blog banner

Concurrency and memory

Blog banner

MQTT (MQ Telemetry Transport) in Data Science

Blog banner

Metasploit

Blog banner

Understanding - Proof of Work!

Blog banner

Uniprocessor Scheduling

Blog banner

Blockchain Transactions

Blog banner

A Traveller’s Guide to Offbeat Places in Arcadia, Florida

Blog banner

How to tie a Tie

Blog banner

Drawing tips for a beginner

Blog banner

differentiate thinking humanly and rationally

Blog banner

ahh wait a min

Blog banner

Android Flashlight Application

Blog banner

Theads

Blog banner

RAID

Blog banner

Esri India launches Policy Maps.

Blog banner

COMPUTER FORENSICS AND GRAPHICS

Blog banner

URL vs Domain

Blog banner

The Psychology of Diversity, Equity & Inclusion: How Inclusive Workplaces Boost Productivity

Blog banner

Dr. Venkadavarahan

Blog banner

Service Operations Principles

Blog banner

Memory input output management

Blog banner

How to Conquer Depression ?

Blog banner

Charcoal, Lemon, and DIY Kits: Which “Viral” Dental Trends Are Actually Dangerous?

Blog banner

Virtual Machine's

Blog banner

Business Engineering

Blog banner

Product Discount Calculator

Blog banner

Office Lunch Problems in Mumbai and How Tiffin Services Solve Them

Blog banner

Autonomy Vehicles: Future Ki Gadiya

Blog banner

Uniprocessor Scheduling

Blog banner

Os assignment

Blog banner

How Cyber Forensics help prevent Crimes

Blog banner