Program:: Implement An Calculator Application Using Concurrent Lisp

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

ASSIGNMENT NO :-1

Aim : - Implement an calculator application using concurrent lisp.

Program:

(defvar a)
(defvar b)
(defvar c)
(defvar r)
(defvar rad)
(defvar angle)

(setf a(read))
(setf b(read))
(setf angle(read))

(sb-thread:make-thread(lambda()
(setf c(+ a b))
(print "Addition is:")
(format t "~d" c)
(terpri)
))

(sb-thread:make-thread(lambda()
(setf c(- a b))
(print "Subtraction is:")
(format t "~d" c)
(terpri)
))

(sb-thread:make-thread(lambda()
(setf c(* a b))
(print "Multiplication is:")
(format t "~d" c)
(terpri)
))

(sb-thread:make-thread(lambda()
(setf c(float(/ a b)))
(print "Division is:")
(format t "~d" c)
(terpri)
))
(sb-thread:make-thread(lambda()
(setf c(* a a))
(print "Square is:")
(format t "~d" c)
(terpri)
))

(sb-thread:make-thread(lambda()
(setf c(* a a a))
(print "Cube is:")
(format t "~d" c)
(terpri)
))

(sb-thread:make-thread(lambda()
(setf c(incf a 3))
(print "Incremented value is:")
(format t "~d" c)
(terpri)
))

(sb-thread:make-thread(lambda()
(setf c(decf a 3))
(print "Decremented value is:")
(format t "~d" c)
(terpri)
))

(sb-thread:make-thread(lambda()
(setf c(min a b))
(print "Minimum value is:")
(format t "~d" c)
(terpri)
))

(sb-thread:make-thread(lambda()
(setf c(max a b))
(print "Maximum value is:")
(format t "~d" c)
(terpri)
))

(sb-thread:make-thread(lambda()(progn (sleep 1)
(setf r(/ pi 180))
(setf rad(* r angle))
(setf c(cos rad))
(print "cos value is:")
(format t "~d" c)
(terpri)
)))

(sb-thread:make-thread(lambda()(progn (sleep 2)
(setf r(/ pi 180))
(setf rad(* r angle))
(setf c(sin rad))
(print "sin value is:")
(format t "~d" c)
(terpri)
)))

(sb-thread:make-thread(lambda()(progn (sleep 3)
(setf r(/ pi 180))
(setf rad(* r angle))
(setf c(tan rad))
(print "tan value is:")
(format t "~d" c)
(terpri)
)))

OUTPUT:

* (load "cal.lisp")
12
13
45

"Addition is:" 25

"Subtraction is:" -1

"Multiplication is:" 156

"Division is:" 0.9230769

"Square is:" 144

"Cube is:" 1728


"Incremented value is:" 15

"Decremented value is:" 12

"Minimum value is:" 12

"Maximum value is:" 13


T
*
"cos value is:" 0.7071067811865476d0

"sin value is:" 0.7071067811865475d0

"tan value is:" 0.9999999999999999d0

You might also like