Мне нужно написать нерекурсивную версию функции sum-square и использовать do-loop, основанный на длине списка аргументов.Сумма квадратов в Lisp
ответ
Вот как это делается обычно:
(defun sum-squares (list) (loop for x in list
for y = (* x x)
summing y into total
finally (return total)))
А до решения петли еще проще, но не половина элегантны:
(defun sum-squares (list)
(let ((sum 0)) (do ((i 0 (1+ i)))
((>= i (length list)))
(setq sum (+ sum (* (nth i list) (nth i list)))))
sum))
Почему бы не (цикл для x в суммировании списка (* x x)). Любое ваше решение для петли - O (n^2); попробуйте выполнить итерацию непосредственно в элементах списка, а не индексы. – huaiyuan
+ 1 от меня за отличный комментарий. Я написал цикл, особенно подробный, так что пример мог бы показать полную структуру конструкции цикла - я думал, что это может быть информативным для новичков таким образом. Что касается второго примера, Orcik хотел найти решение, которое использовало длину списка аргументов, иначе я бы наверняка повторил эти элементы. –
- 1. Сумма квадратов в Clojure
- 2. сумма квадратов целых чисел
- 3. Сумма квадратов домашней работы
- 4. Сумма квадратов элементов списка
- 5. сумма квадратов матриц
- 6. Сумма квадратов разностей
- 7. Python Сумма квадратов Функция
- 8. Сумма двух квадратов в C
- 9. Сумма разложения двух квадратов подсчета
- 10. Эффективно вычисляемая сумма квадратов разностей
- 11. сумма квадратов или всего квадрата?
- 12. Очень высокая остаточная сумма квадратов
- 13. Lisp Сумма мощности
- 14. Пользовательская функция '+' (сумма) в lisp
- 15. Сумма квадратов в массиве с использованием функции
- 16. R в группе сумма квадратов kmeans
- 17. Сумма квадратов цифр целого числа в Java
- 18. Сумма квадратов по спискам в Perl
- 19. сумма квадратов макс 2 3 SICP упражнения
- 20. Сумма квадратов с использованием лямбда-функций
- 21. Найти минимальную стоимость расчета Сумма квадратов
- 22. Сумма первых квадратов n номеров Javascript
- 23. Python Домашнее задание - сумма совершенных квадратов
- 24. Как работает сумма квадратов разностного алгоритма?
- 25. сумма и произведение макросов в LISP
- 26. значения квадратов квадратов в FreqDist, python
- 27. Расчетная сумма с использованием рекурсии LISP
- 28. Сумма двух значения два массива LISP
- 29. Extra сумма квадратов теста в SAS PROC GLM
- 30. Сумма квадратов - np.inner против возведения в квадрат, а затем суммированием
Я уверен, что вы делаете. – zmbush
Я понятия не имею, как это написать ... Надеюсь, кто-то может помочь – bubdada
Это звучит как домашнее задание. Кроме того, Lisp построен вокруг рекурсии, почему вы хотите его избежать? – zmbush