最佳答案
我知道折叠左边产生的是左倾的树,而折叠右边产生的是右倾的树,但是当我伸手去拿折叠的时候,我有时会发现自己陷入令人头疼的想法中,试图确定哪种折叠是合适的。我通常最终解开整个问题,并逐步实现折叠函数,因为它适用于我的问题。
所以我想知道的是:
在 例子中的 Scala(PDF)中有一个例子,使用折叠来编写一个名为 flatten 的函数,该函数将一个元素列表链表连接到一个单独的列表中。在这种情况下,右折叠是正确的选择(考虑到列表的连接方式) ,但我必须思考一下才能得出这个结论。
由于折叠在(函数式)编程中是如此常见的操作,我希望能够快速而自信地做出这些决定。有什么建议吗?