在功能编程中“记住”值
我已经决定将学习函数式编程的工作推给自己。到目前为止,这是一个爆炸,我已经“看到了光”。不幸的是,我实际上不认识任何可以跳出问题的函数式程序员。介绍堆栈交换。 我正在上网络/软件开发课程,但是我的老师对函数式编程并不熟悉。他对我使用它很好,他只是请我帮助他了解它是如何工作的,以便他可以更好地阅读我的代码。 我认为最好的方法是通过说明一个简单的数学函数,例如将值提高到幂。从理论上讲,我可以使用预先构建的函数轻松地做到这一点,但这会违背示例的目的。 无论如何,我在弄清楚如何保持价值方面有些困难。由于这是函数式编程,因此我无法更改变量。如果我必须对它进行编码,它将看起来像这样: (以下是所有伪代码) f(x,y) { int z = x; for(int i = 0, i < y; i++){ x = x * z; } return x; } 在函数式编程中,我不确定。这是我想出的: f(x,y,z){ if z == 'null', f(x,y,x); else if y > 1, f(x*z,y-1,z); else return x; } 这是正确的吗?z在这两种情况下,我都需要保留一个值,但是我不确定如何在函数编程中执行此操作。从理论上讲,我的工作方式有效,但是我不确定它是否“正确”。有更好的方法吗?