如何使用GHood或Vacuum观察此递归函数?

时间:2011-11-17 23:13:37

标签: haskell vacuum

我正在使用GHood来观察分区函数的这个实现的执行,并期望看到一个二叉树。相反,我得到这棵树: enter image description here

import Debug.Observe

p :: (Observable a, Ord a, Num a) => a -> a -> a
p k n 
  | k > n = 0
  | k == n = 1
  | otherwise = (observe "left" p (k+1) n ) + (observe "right" p k (n-k))

>>> printO $ observe  "p" p 1 3

根据有关irc的建议,我也尝试使用Data.Number.Natural中的惰性自然数字失败。

当使用Vacuum.Cairo时,我的回复更少,只是函数的结果运行完成。

>>> m: + System.Vacuum.Cairo
>>> view $ p 1 5

0 个答案:

没有答案