我最近开始学习Haskell,在我的一个任务中,我有一个练习,要求根据foldr定义地图功能,我不能为我的生活弄清楚如何做到这一点.我搜索了堆栈溢出的解决方案,并遇到了这个:
然而,这里的解决方案涉及使用lambdas,我还没有涉及到这一点,并且我认为因为这样,练习应该是没有lambda的(尽管你永远不知道).
我想最让我困惑的是地图采用一元函数(例如+1),而foldr采用二元函数(例如+),我真的不知道如何使这两者一起工作.
我已经在MIPS汇编中给出了一个特定的算法,并且所述算法碰巧有两种可能的实现 - 递归和迭代.我们的教授明确指出,我们的实现应该是递归的(不是因为它更好,它只与我们所涉及的材料相关).
我的问题是我不太了解递归过程和这种级别的迭代过程之间的区别.使用跳转实现循环和递归(据我所知) - 您跳回到过程的开始,直到达到某种基本情况.我的教授目前无法使用,所以我要求大家帮忙 - 为了使你的程序递归而不是迭代,你需要做什么?什么时候跳回到过程的顶部算作迭代,什么时候算作递归?