Code:
enumarithmeticexpression {//Related Values CaseNumber (Int)//Recursive enumerationIndirect Caseaddition (arithmeticexpression, arithmeticexpression) indirect Casemultiplication (arithmeticexpression, arithmeticexpression) indirect CaseDivision (arithmeticexpression, Arithmeticexpression)}func evaluate (expression:arithmeticexpression)-Int {SwitchExpression { Case . Number (let value):returnvalue Case . Addition (let-left):returnEvaluate (left) +evaluate (right) Case . Multiplication (Let-left):returnEvaluate (left) *evaluate (right) Case . Division (let-left):returnEvaluate (left)/evaluate (right)}} Let five= Arithmeticexpression.number (5) let four= Arithmeticexpression.number (4) Let sum=Arithmeticexpression.addition (five, four) let product= Arithmeticexpression.multiplication (Sum, Arithmeticexpression.number (2)) Let quotient=Arithmeticexpression.division (five, four) print (Evaluate (sum)) print (Evaluate (product)) Print (Evaluate ( Quotient))
Output:
9181
Swift enumeration-correlation value and recursive enumeration