% \insert '../assignment1/List.oz' declare QuadraticEquation Sum RightFold Quadratic LazyNumberGenerator TailRecursiveSum in % task 1 a) proc {QuadraticEquation A B C ?RealSol ?X1 ?X2} Discriminant in Discriminant = B*B - 4.0*A*C RealSol = Discriminant >= 0.0 if RealSol then X1 = (~B - {Sqrt Discriminant})/(2.0*A) X2 = (~B + {Sqrt Discriminant})/(2.0*A) end end % task 1 b) local TestQuad = proc {$ A B C} local RealSol X1 X2 in {QuadraticEquation A B C RealSol X1 X2} {System.show RealSol|[X1 X2]} end end in {System.show 'testing abc'} {TestQuad 2.0 1.0 ~1.0} {TestQuad 2.0 1.0 2.0} end