- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
想在 Haskell 中获得以下函数的分步说明
fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
最佳答案
一开始的评价是这样的:
fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
fibs
通过它的评估,它看起来像这样:
fibs = 0 : 1 : zipWith (+) (0 : 1 : ?) (1 : ?)
?
表示未评估的 thunk。让我们评估
fibs
的下一个元素:
fibs = 0 : 1 : zipWith (+) (0 : 1 : ?) (1 : ?) ==>
fibs = 0 : 1 : 1 : zipWith (+) (1 : ?) (?)
zipWith
的每个参数列表的第一个元素被消耗。现在,当我们评估它时,我们也知道下一个 thunk 的值是什么,我们可以填写它。这允许我们评估下一个单元格,依此类推:
fibs = 0 : 1 : 1 : zipWith (+) (1 : ?) (?) ==>
fibs = 0 : 1 : 1 : zipWith (+) (1 : 1 : ?) (1 : ?) ==>
fibs = 0 : 1 : 1 : 2 : zipWith (+) (1 : ?) (?) ==>
fibs = 0 : 1 : 1 : 2 : zipWith (+) (1 : 2 : ?) (2 : ?) ==>
fibs = 0 : 1 : 1 : 2 : 3 : zipWith (+) (2 : ?) (?) ==>
...
关于haskell - corecursion 和 codata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6186664/
我在 Racket 中编写了一个函数来生成类似于以下分形的东西。 (define CUT-OFF 5) (define CIRCLE-MODE "outline") (define (circle-f
想在 Haskell 中获得以下函数的分步说明 fibs = 0 : 1 : zipWith (+) fibs (tail fibs) 我知道“fibs”通常是“懒惰的”,因此下一项将“按需”计算,但
我正在尝试使用非平凡(即非斐波那契数列)但易于管理的示例找出 Clojure 中的 corecursion。显然可以用 corecursion 实现二叉树遍历。维基百科有一个我无法理解的 Python
我知道 Python 有一些惰性实现,因此,我想知道是否可以在 Python 中使用循环编程。 如果不是,为什么? 最佳答案 我认为你的意思是协同例程,而不是协同递归。是的,这在 Python 中是完
我正在从事一个 C++ 项目,该项目需要与树结构进行频繁交互,这意味着有很多递归函数,我正在寻找改进代码的方法。我遇到了corecursion前几天,我有兴趣为我的应用程序探索这种策略。 但是,我还没
我在阅读《Joy of Kotlin》一书时遇到了这个有趣的问题。在第4章中,在解释尾递归时,作者提供了一个将两个数字相加的实现,如下所示。 tailrec fun add(a: Int, b: In
我已经定义了无限列表的无限列表 pathCounts和有限列表的无限列表pathCounts' : import Data.Function (fix) nextRow xs = fix $ \ys
我是一名优秀的程序员,十分优秀!