实现系数的流整数

时间:2014-10-25 03:37:27

标签: haskell

作为我自学的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的系数。

1 个答案:

答案 0 :(得分:3)

是的,这是对的。您可以通过添加共享来略微改进streamRepeat定义,但这对于作业的目的无关紧要。