Mic*_*ael 6 scala stream backtracking
有没有办法在Scala中定义stream
一个backtracking
算法?
例如,以下backtracking
算法打印给定大小的所有"二进制"字符串.
def binaries(s:String, n:Int) { if (s.size == n) println(s) else { binaries(s + '0', n) binaries(s + '1', n) } }
我相信我可以stream
使用另一种迭代算法定义一个给定大小的"二进制"字符串.不过我想知道我是否可以将上面的回溯算法转换为stream
.
Dan*_*ral 11
这很简单:
def binaries(s: String, n: Int): Stream[String] =
if (s.size == n) Stream(s)
else binaries(s + "0", n) append binaries(s + "1", n)
Run Code Online (Sandbox Code Playgroud)
注意使用append
- 此方法对于其他集合是非标准的,这是一个要求,因为它必须按名称获取其参数.
归档时间: |
|
查看次数: |
666 次 |
最近记录: |