所以我正在做一些Real World Haskell的初始章节练习,我想知道GHCi中是否有一个选项可以让它在每次递归调用时显示带有参数的函数求值。举个例子,我写了一个简单版本的'map',当我应用它时,我希望GHCi能用实际参数显示每个递归调用(希望还有表达式结果)。一些可以让我跟踪幕后动态的东西。附注:在我写这篇文章的时候,我有一种感觉,它可能受到haskell执行模型的懒惰的限制,如果我错了
有人评论说,我的递归函数可以使用延续传递风格来实现尾递归。我想不出该怎么做。Pure of 'a
| Free x -> x |> mapI (bind f) |> Free
| Pure x -> f x 我试图使尾部恢复的函数是我开始认为,事实上,这是不可能的尾巴递归。类型FaceInstruction<'a>已经包含了一个延续,函数mapI修改了该延续,所
是否可以将递归TH函数转换为将编译的等效形式?以下定义不起作用,因为要编译fact,首先必须编译fact。$n] |]),但是在一般情况下,如果不能将给定的函数重写为循环,那么可以定义递归的TH函数吗?有没有一个例子可以这样做呢?为了向未来的读者澄清:这个问题是专门关于编写递归的TH函数的,而不是关于‘我如何拼接阶乘函数’。我的问题的答案非常简单:
{-# LAN