Question: Check the Lisp program below and make sure it behaves as same as the given instruction and make the necessary adjusments needed. THE CODE: (
Check the Lisp program below and make sure it behaves as same as the given instruction and make the necessary adjusments needed.
THE CODE:
defun simplifyarithmeticexpression expression
let simplified format nil ~~a~ ~ expression
simplified
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 splitsequence:splitsequenceif #lambda charmember char # # input
format t "Simplification: ~a~ simplified
format t "Evaluateyn
let decision readline
cond string decision y
format t "Provide variable values~
let values makehashtable
loop for var in removeduplicates removeifnot #'alphacharp coerce simplified 'list
do progn format t ~a : var
setf gethash var valuesread
evaluatearithmeticexpression input 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
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
