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

Direct Memory Access

Blog banner

A Happier Workplace Starts with Healthy Lunches by Meal Maharaj

Blog banner

GIS in Disaster Management

Blog banner

Digital Marketing Ethics Transparency Trust And Brand Reputation digital

Blog banner

'C', 'C++' and 'Java': Head-to-Head

Blog banner

THE ROLE OF CYBER FORENSICS IN CRIMINOLOGY

Blog banner

Big Data

Blog banner

OS Assignment 3 Deadlock

Blog banner

My 1stNull Puliya session

Blog banner

Buffers in Operating Systems

Blog banner

Google classroom

Blog banner

BUSINESS MODELS OF E COMMERCE

Blog banner

S-Tool : Steganography

Blog banner

Festive Ethnic Wear Guide: Patola-Inspired Looks for Every Celebration

Blog banner

MEMORY MANAGEMENT (techniques)

Blog banner

History of Money

Blog banner

Broken Authentication Attacks

Blog banner

Deming’s Process

Blog banner

Types Of Interrupt

Blog banner

DIGITAL ECONOMY

Blog banner

Wreck

Blog banner

Operating system evolution

Blog banner

Cloud Computing: Threats and Vulnerabilities

Blog banner

Maharashtrian culture: Tradition, Art, Food

Blog banner

virtual machine

Blog banner

What is Data, Information and Knowledge?

Blog banner

Topic: Sessions in Operating system

Blog banner

CYBERBULLYING: Negative comments!

Blog banner

8 Reasons Why You Must Try Digital Marketing

Blog banner

Memory Management

Blog banner

Virtual Memory - Explaination, Working, Steps

Blog banner

History of ITIL

Blog banner

Key to success in Sports

Blog banner

Evolution of Operating Systems

Blog banner

Objectives and Functions of Operating System

Blog banner

Bots and Cyber Security

Blog banner

Paralysis/Paralysis Stroke

Blog banner

What are Tenders its various types

Blog banner

Goa Trip With Friends

Blog banner

Virtual machine.

Blog banner

Self defence

Blog banner

BITCOIN WALLET

Blog banner