sco*_*out 3 recursion scala partial-application
def mainCaller() = {
val name = "xyz"
someList.foreach { u:Map => foo(name, u) }
}
def foo(name:String)(map:Map): Unit = {
//match case....
//recursive call to foo in each case where name remains same, but map changes
}
Run Code Online (Sandbox Code Playgroud)
我如何编写foo作为部分应用函数,我不必在每次递归调用中传递名称而只是调用foo(map1)?
两种选择:
def foo(name:String)(map:Map): Unit = {
val bar = foo(name)_
//match case...
// case 1:
bar(x)
// case 2:
bar(y)
}
Run Code Online (Sandbox Code Playgroud)
要么:
def foo(name:String): Map => Unit = {
def bar(map: Map): Unit = {
//match case...
// case 1:
bar(x)
// case 2:
bar(y)
}
bar
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
304 次 |
| 最近记录: |