In LISP all constants are global variables. Values of constant never change throughout the execution of the program.
Defining constant in LISP:
New global constants are defined using the DEFCONSTANT construct
Syntax:
(defconstant name initial-value-form
"documentation-string")
Example:
Let’s create a global constant whose value will contain the rate of shirt
(defconstant shirt-rate 575
"shirt-rate is having a constant value of 575")
Now let’s create a function that will calculate the total bill by taking the number of shirts as input and then multiplying it with our previously defined constant shirt-rate
(defun calc-total-bill (n)
"Calculates the total bill by multiplying the number of shirts purchased with its constant rate"
(* shirt-rate n))
Let’s call this function
(format t "Total number of shirts purchased : 7~%")
(format t "Price of each shirt : ~2d~%" shirt-rate)
(format t "Total bill amount is : ~2d~%" (calc-total-bill 7))
Code:
Lisp
(defconstant shirt - rate 575
"shirt-rate is having a constant value of 575" )
( defun calc - total - bill (n)
"Calculates the total bill by multiplying the number of
shirts purchased with its constant rate"
( * shirt - rate n))
( format t "Total number of shirts purchased : 7~%" )
( format t "Price of each shirt : ~2d~%" shirt - rate)
( format t "Total bill amount is : ~2d~%" (calc - total - bill 7 ))
|
Output :
We can check if some symbol is the name of a global variable or constant by using boundp predicate, As it is the predicate it returns T if it finds the constant with a particular name and will return NIL if it doesn’t.
For example, in our program, we have a constant shirt-rate defined so let’s run this
Lisp
(write (boundp 'shirt - rate))
(terpri)
(write (boundp 'rate))
|
Output :
T
NIL
As expected it has returned T when it finds a constant shirt-rate but returns NIL when it can’t find the constant rate in the program.
Last Updated :
16 Oct, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...