1

我是函数式编程的新手,并且正在阅读这本书。它基本上说,如果您的代码包含“var”,则意味着您仍在以命令式的方式进行操作。我不确定如何将我的代码更改为功能性方式。请建议。

所以基本上这段代码的作用是处理文本一些文本并使用正则表达式从“taggedText”中提取特定文本并将其添加到列表中并将列表转换为 json。


    val text = params("text")
    val pattern = """(\w+)/ORGANIZATION""".r

    var list = List[String]()
    val taggedText = processText(text)
    pattern.findAllIn(taggedText).matchData foreach {
      m => list ::= m.group(1)
    }

    pretty(render(list)) // render to json

4

1 回答 1

7

尝试将中间部分替换为

val list = pattern.findAllIn(taggedText).matchData.map(m => m.group(1)).toList

你可以随心所欲m => m.group(1)地写_.group(1)

于 2012-05-16T22:34:42.407 回答