我需要编写函数sum-squares的非递归版本并使用基于参数列表长度的do循环。Lisp中的平方和
1
A
回答
1
下面是它一般都做:
(defun sum-squares (list) (loop for x in list
for y = (* x x)
summing y into total
finally (return total)))
DO循环的解决方案更简单,而不是一半优雅:
(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))
+3
为什么不能(在列表求和(* x x)中循环x))。任何你的循环解决方案是O(n^2);尝试直接迭代列表项,而不是索引。 – huaiyuan 2010-04-21 06:55:24
+1
+ 1来自我的评论。我特别详细地写了这个循环,以便该示例可以显示循环结构的完整结构 - 我认为这可能会以这种方式向初学者提供信息。至于第二个例子 - orcik想要一个使用参数列表长度的解决方案 - 否则我肯定会迭代元素本身。 – 2010-04-21 07:50:52
相关问题
- 1. 计算Lisp中的平均分和平均分
- 2. (通常lisp)展平和通过名单
- 3. Lisp:将列表中的所有值平方
- 4. Emacs Lisp的方案方言
- 5. Lisp和Scheme中的WebSockets库?
- 6. 让和FLET中的Emacs Lisp
- 7. Lisp中的setq和defvar
- 8. 写lisp方言
- 9. 嵌入式平台上的Lisp
- 10. 平方根和向量的平方在C++中双打
- 11. LISP追加方法
- 12. Lisp(Scheme)Newton方法
- 13. Lisp和Android NDK
- 14. common lisp和emacs
- 15. lisp vs方案中的true和false null值
- 16. 平方和矩阵
- 17. 平方和计算
- 18. SQL中的NormDist和平方根计算
- 19. 与aggregateByKey PySpark平方和的
- 20. Python的平方和功能
- 21. 在Lisp(Clojure,Emacs Lisp)中,list和quote有什么区别?
- 22. 函数来计算平方和和平方之差
- 23. Lisp中的序列
- 24. Lisp中的过程
- 25. Emacs Lisp中的strpos
- 26. Emacs Lisp中的PPRINT?
- 27. 的#ifndef Common Lisp中
- 28. 在PHP中计算平方和
- 29. 在java中进行平方和总计
- 30. LISP - 如何从嵌套列表中获取平均长度?
我敢肯定,你怎么做。 – zmbush 2010-04-21 05:51:26
我不知道如何写它...我希望有人可以帮助 – bubdada 2010-04-21 05:52:13
这听起来像作业。另外,Lisp是围绕递归构建的,为什么你想避免它? – zmbush 2010-04-21 05:55:50