大佬教程收集整理的这篇文章主要介绍了如何在Clojure中正确使用“iterate”和“partial”?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写@L_489_2@编程作业,尝试使用牛顿的方法得到数字n的平方根.也就是说,将猜测作为初始近似值,通过计算近似值和n /近似值的平均值来保持计算新的近似值.继续,直到两个最近的近似值之间的差异小于epsilon.
我首先尝试做近似部分,我相信这是我需要使用迭代和部分.后来epsilon是我需要用“拿”的东西?
这是我没有epsilon的近似代码:
(defn sqrt [n guess] (iterate (partial sqrt n) (/ (+ n (/ n guess)) 2)))
这段代码不能正常工作,当我输入(sqrt 2 2)时,它给了我(3/2 user => ClassCastException clojure.lang.Cons不能强制转换为Java.lang.number clojure.lang.numbers.divide (numbers.java:155).
我想这是我需要反复迭代的部分?有人可以给我一些提示吗?再次,这是@L_489_2@家庭作业问题,所以请不要直接解决整个问题,我需要一些我可以学习的想法和解释.
(def take-five (partial take 5)) (take-five [1 2 3 4 5 6 7 8 9 10]) ;=> (1 2 3 4 5)
iterate通过采用两个参数生成无限序列:函数和种子值.种子值用作生成列表中的第@L_489_2@元素,第二个元素通过将函数应用于种子来计算,第二个值用作函数的输入以获取第三个值,依此类推.
(take-five (iterate inc 0)) ;=> (0 1 2 3 4)
ClojureDocs提供了有关这两个功能的良好文档:http://clojuredocs.org/clojure_core/clojure.core/iterate和http://clojuredocs.org/clojure_core/clojure.core/partial.
以上是大佬教程为你收集整理的如何在Clojure中正确使用“iterate”和“partial”?全部内容,希望文章能够帮你解决如何在Clojure中正确使用“iterate”和“partial”?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。