1.1 略
1.2 略
1.3
sumSLT :: (Num a,Ord a) => a -> a -> a -> a
sumSLT a b c
| (a<b && a<c) = b*b + c*c
| (b<a && b<c) = a*a + c*c
| otherwise = a*a + b*b
1.4 略
1.5 略
1.6 略
1.7
newSqrt :: (Num a,Fractional a,Ord a) => a -> a
newSqrt x = sqrt_iter 1.0 x
where sqrt_iter guess x = if (good_enough guess x) then guess
else sqrt_iter (improve guess x) x
good_enough guess x = (guess*guess/x < 1.001) && (guess*guess/x > 0.999)
improve guess x = (guess + (x/guess))/2
1.8
improve guess x = (x/(guess*guess)+2*guess)/3
good_enough guess x = abs (guess*guess*guess - x) < 0.0001
cubet_iter guess x = if (good_enough guess x)
then guess
else (cubet_iter (improve guess x) x)
cubet x = cubet_iter 1.0 x

被折叠的 条评论
为什么被折叠?



