作为我自学的homework(2013年)的一部分,请考虑以下背景:
基本思想是使用生成表格
的功能a0 + a1 * x + a2 * x ^ 2 +···+ an * x ^ n +。 。
其中x只是一个“形式参数”(也就是说,我们永远不会真正替换任何值 X;我们只是将它用作占位符)和所有系数ai 整数。我们将存储系数a0,a1,a2,.... 。 。在流中 整数。
我尝试实施x :: Stream Integer
注意到x = 0 + 1x + 0x ^ 2 + 0x ^ 3 +。 。 。
x :: Stream Integer
x = Cons 0 (Cons 1 $ streamRepeat 0)
以下定义:
data Stream a = Cons a (Stream a)
streamRepeat :: a -> Stream a
streamRepeat x = Cons x (streamRepeat x)
我的x
实施是否正确?我不确定,鉴于上述背景,我是否正确地捕获a0,a1,...,a的系数。
答案 0 :(得分:3)
是的,这是对的。您可以通过添加共享来略微改进streamRepeat
定义,但这对于作业的目的无关紧要。