Автор: *оля* 23.09.2011 22:28
Здравствуйте.
Вот такая задачка:
написать функцию isIncluded, аргументами которой служат параметры двух окружностей на плоскости (координаты центров и радиусы);
функция возвращает True, если вторая окружность целиком содержится внутри первой.
я решаю вот так:
Код
isIncluded :: Double->Double->Double->Double->Double->Double->Bool
isIncluded x1 y1 r1 x2 y2 r2 = if (sqrt((x2-x1)^2+(y2-y1)^2)+r2)<=r1 then True
else False
Подскажите пожалуйста, все ли правильно и можно ли вообще так писать?
Просто только начала изучать язык, поэтому не совсем все понятно.
заранее спасибо
Автор: IUnknown 23.09.2011 23:39
Можно и так, конечно, но зачем явно указывать True/False, если Haskel сам в состоянии разобраться:
Код
isIncluded :: Double -> Double -> Double -> Double -> Double -> Double -> Bool
isIncluded x1 y1 r1 x2 y2 r2 =
(sqrt((x2 - x1)^2 + (y2 - y1)^2) + r2) <= r1