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

Craziness of dream 11 and how it impacts on our life

Blog banner

The most common internet security threats

Blog banner

Why we fail after giving 100% ?

Blog banner

Sage business cloud accounting

Blog banner

How to Grow Your Brand on YouTube Without a Big Budget

Blog banner

BUSINESS MODELS OF E COMMERCE

Blog banner

Is it important to follow all the trends that come up on social media?

Blog banner

First-Order Logic (FOL): The Foundation of Modern Logic

Blog banner

RAID

Blog banner

Race Condition

Blog banner

Process, process creation and process termination

Blog banner

Memory Management

Blog banner

Supervised and Unsupervised Learning

Blog banner

GOOGLE

Blog banner

Network Security Risks

Blog banner

How Does SSO Works

Blog banner

Elements and Principles of Photography

Blog banner

Deadlock in Operating System

Blog banner

Evolution of Operating system

Blog banner

Men’s Mental Health: Breaking the Silence and Building Emotional Well-being

Blog banner

BrainGate Technology

Blog banner

Digital marketing spotlight “Dove’s Real Beauty Campaign”

Blog banner

Importance of education

Blog banner

Constrains in service design

Blog banner

Corporate Discipline.

Blog banner

Memory management and virtual memory

Blog banner

Deadlock

Blog banner

Data Science in Healthcare: Predicting Diseases

Blog banner

Uniprocessor Scheduling

Blog banner

Virtual machine.

Blog banner

A BLOG ON MYSQL

Blog banner

semaphores

Blog banner

Fun Christmas Activities For Toddlers & Kids

Blog banner

Operating system evolution

Blog banner

Worms, viruses and Bots

Blog banner

Crypto tax evasion

Blog banner

AI and cyber Security

Blog banner

EMAIL INVESTIGATION

Blog banner

How User Data Shapes Personalised Campaigns

Blog banner

The Importance of Financial Literacy for College Students

Blog banner

What are Tenders its various types

Blog banner

Cache memory

Blog banner