Professional Documents
Culture Documents
Program:: Implement An Calculator Application Using Concurrent Lisp
Program:: Implement An Calculator Application Using Concurrent Lisp
Program:: 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