2013-07-11 37 views

回答

0

“CODATA是由可以是无穷大的值居住类型”

与此相反,“数据”,其仅由有限值居住。例如,如果我们采用列表的“数据”定义,那么它就是有限长度的列表(如在ML中),但是如果我们采用“codata”定义,则它将通过无限长度列表居住(如Haskell,例如x = 1 : x)。

Comonads和codata不一定是相关的(尽管也许有些人可能认为是由于Kieburtz的论文Comonads and codata in Haskell)。

+0

您是否同意“在LISP代码中是数据,而LISP代码是否是数据?” – hawkeye

+0

编号LISP代码是数据(它是一个列表/ S表达式),但这不同于“数据/数据”中的“数据”。我会在答案中举一个例子,试图让事情更清楚。 – dorchard

+0

好的 - 就这样我就清楚了 - 如果我在Clojure中有一个将fibconacci序列的懒惰列表返回到无穷大的函数 - 那么该函数的结果(懒惰列表)将是codata,但函数本身会不。 – hawkeye