У меня есть этот код, чтобы отработать сумму квадратов целых чисел в диапазоне от т: псуммы квадратов целых чисел Haskell
sumsquares :: Integral a=> Int -> Int -> Int -> Int
sumsquares m n middle
| m > n = error "First number cannot be bigger than second number"
|m==n = m*m
|otherwise = m*m + sumsquares (m+1)n
Как бы я переопределить функцию sumsquares для этой цели?
Если в диапазоне m: n находится более одного числа, вычислите середину диапазона и добавьте сумму квадратов (m: средняя) к сумме квадратов (средний + 1: n), , в противном случае существует только одно число в диапазоне m: n, поэтому m = = n, а решение - только квадрат m. (Обратите внимание, что при таком подходе рекурсия объединяет два полурешения: каждая подзадача примерно вдвое меньше общей проблемы).
Я не понимаю, для чего вам нужен средний ... Вы не используете его, и из вашего описания того, как я думаю, вы хотите его использовать, ничего не спасает. – jamshidh
Возможный дубликат [Сумма квадратов с использованием Haskell] (http://stackoverflow.com/questions/27407773/sum-of-squares-using-haskell) – Jubobs
Я думаю, это не дубликат, так как вопрос требует другого решения состав. –