【发布时间】:2017-02-10 02:22:07
【问题描述】:
我正在尝试定义一个函数,它接受一个点 (x,y) 作为输入,并返回一个对应于递归调用的无限列表
P = (u^2 - v^2 + x, 2uv + y)
u和v的初始值都是0。
-
第一个电话是
P = (0^2 - 0^2 + 1, 2(0)(0) + 2) = (1,2)
-
那么结果元组 (1,2) 将是 u 和 v 的下一个值,那么它就是
P = (1^2 - 2^2 + 1, 2(1)(2) + 2) = (-2,6)
等等。
我试图弄清楚如何在 Haskell 中编写代码。这是我目前所拥有的:
o :: Num a =>(a,a) -> [(a,a)]
o (x,y) = [(a,b)| (a,b)<- [p(x,y)(x,y)]]
where p(x,y)(u,v) = ((u^2)-(v^2)+x,(2*u*v)+y)
我真的不确定如何进行这项工作。任何帮助,将不胜感激!
【问题讨论】:
-
请不要删除您的示例代码。每个人都从某个地方开始。没有必要为此感到羞耻:)
-
@Rhymoid,你是在暗示我的小学 Logo、BASIC 和 Turbo Pascal 代码可能还有一些不足之处吗?我自己只写过完美的代码,我希望其他人也一样。编程是严肃的事情,没有任何错误的余地!
标签: list haskell recursion repeat infinite