Как преобразовать алгоритм бэктрекинга в поток?

Есть ли способ определить поток с алгоритмом обратного перебора в Scala?

Например, следующий алгоритм backtracking печатает все "двоичные" строки заданного размера.

def binaries(s:String, n:Int) {
  if (s.size == n)
    println(s)
  else {
    binaries(s + '0', n)
    binaries(s + '1', n)
  }
}

Я полагаю, что могу определить поток "двоичных" строк заданного размера, используя другой итерационный алгоритм. Однако мне интересно, могу ли я преобразовать приведенный выше алгоритм backtracking в stream.

6
задан Michael 25 December 2011 в 09:08
поделиться