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
1 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 a Malware ?

Blog banner

Mumbai Metro 3

Blog banner

Introduction to Solidity Programming for Blockchain Development

Blog banner

The seven-step improvement process

Blog banner

Junk food vs healthy food

Blog banner

38_Network Sniffing Techniques_SBC

Blog banner

Time Series Analysis

Blog banner

Importance of modern technology era

Blog banner

What is E-commerce

Blog banner

6 Digital Marketing Trends You Must Watch Out For In 2022

Blog banner

Understanding - Proof of Work!

Blog banner

Animal’s have my heart

Blog banner

The role of artificial intelligence in automating digital forensic analysis.

Blog banner

Evolution of Operating System

Blog banner

Why Data Security Is Important

Blog banner

Chicken Dum Biryani

Blog banner

Honeypot in cyber security

Blog banner

ahh wait a min

Blog banner

All you need to know about Website Traffic

Blog banner

Threats To Computer System

Blog banner

Photorec - media recovery tool

Blog banner

Deadlock in operating system

Blog banner

Threads

Blog banner

Concurrency and Deadlocks

Blog banner

memory cache

Blog banner

Exploring Virtual Machines and Computer Forensic Validation Tools

Blog banner

Rules and Regulations of Networking: "Standards and Protocols" - Part 2

Blog banner

IoT Evolution

Blog banner

Routers

Blog banner

Deadlock and Starvation

Blog banner

Study of Sniffing Tools

Blog banner

Instagram Features in 2023 That Will Leave You Stunned!

Blog banner

Electronic Evidence in Cyber Forensics

Blog banner

How return on investment is defined in IT services

Blog banner

Self managing devices

Blog banner

Explain DBMS in Brief

Blog banner

Creating Digitally Signed Document

Blog banner

POVERTY:Causes and solutions to problems

Blog banner

Online Education

Blog banner

Advantage of freedom

Blog banner

Dekkers Algorithm : Ensuring Safe Process Synchronization

Blog banner

THREADS (assignment 1)

Blog banner