0

我是函数式编程的新手,我正在使用带有箭头函数库的 Kotlin。我想将以下函数转换为纯函数。每个func*()调用都返回一个有效的字符串,并将其附加到可变字符串变量returnString。据我所知,FP 函数不应该使用任何可变值。那么我将如何替换那些字符串附加行呢?

    private fun stringifyValue(): String {
            var returnString = String()
            returnString = returnString.plus("=")
            returnString = returnString.plus(func1())
            returnString = returnString.plus("+/")
            returnString = returnString.plus(func2())
            returnString = returnString.plus("@")
            returnString = returnString.plus(func3())
            returnString = returnString.plus("#")
            returnString = returnString.plus(func4())
            returnString = returnString.plus("%")
            returnString = returnString.plus(func5())
            returnString = returnString.plus("^")
            return returnString
}
4

1 回答 1

2

这个问题似乎与Arrow无关。你有更多与这个例子相关的代码吗?也许更多的背景?

至于手头的代码,使用 Kotlin 的模板字符串可能会更容易一些:

private fun stringifyValue(): String = 
  "=${fun1()}+/${func2()}@${func3()}#${func4()}%${func5()}^"
于 2020-05-08T00:36:43.387 回答