Files
TDT4165/assignment3/main.oz
2025-09-28 15:00:30 +02:00

34 lines
777 B
Plaintext

% \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
% task 2
fun {Sum List}
case List of Head|Tail then Head + {Sum Tail} else 0 end
end