Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Check the Lisp program below and make sure it behaves as same as the given instruction and make the necessary adjusments if needed. THE CODE:
Check the Lisp program below and make sure it behaves as same as the given instruction and make the necessary adjusments if needed.
THE CODE:
defun simplifyarithmeticexpression expression
letsimplified removeif #lambda charchar char #space expression
terms splitsequence:splitsequence # simplified
simplifiedterms mapcar #lambda term
stringtrim term
terms
finalsimplified format nil ~~a~ ~ simplifiedterms
finalsimplified
defun evaluatearithmeticexpression expression values
lettokens splitsequence:splitsequence # expression
evaluatedtokens mapcar #lambda token
eval readfromstring token
tokens
result apply # evaluatedtokens
format t "Expression value: ~a~ result
defun main
loop
format t "Enter arithmetic expression:
let input readline
cond string input "quit"
format t "Good Bye!~
return
t
letsimplified simplifyarithmeticexpression input
if string simplified "INVALID"
progn
format t "Invalid expression. Please enter a valid arithmetic expression.~
return
progn
format t "Simplification: ~a~ simplified
format t "Evaluate yn
let decision readline
cond string decision y
format t "Provide variable values~
let values makehashtable :test 'equal
loop for var across removeduplicates removeifnot #'alphacharp coerce simplified 'list
do progn format t ~a: var
setf gethash var valuesread
evaluatearithmeticexpression simplified values
string decision n
format t ~
t format t "Invalid choice.~
main
THE INSTRUCTION :
Create a program for the simplification and evaluation of arithmetic expressions. The program, when executed, should prompt the user to enter an arithmetic expression:
exeval
Enter arithmetic expression: x y x
The expression should be a linear combination of single letter variables. The program will then simplify the expression:
exeval
Enter arithmetic expression: x y x
Simplification: x y
and then will ask whether to evaluate the expression. If the answer is y then it will prompt for values for each of the variables and evaluate the expression:
exeval
Enter arithmetic expression: x y x
Simplification: x y
Evaluate? y
Provide variable values
x :
y :
Expression value:
Enter arithmetic expression:
then ask for a new expression to evaluate. If the answer is n then it will simply ask for a new expression to evaluate:
exeval
Enter arithmetic expression: x y x
Simplification: x y
Evaluate? n
Enter arithmetic expression:
The program will quit with command 'quit' enter at the expression prompt:
exeval
Enter arithmetic expression: x y x
Simplification: x y
Evaluate? n
Enter arithmetic expression: quit
Good Bye!
PLZ include screenshots of the execution the program for assurance.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started