Skip to content

Instantly share code, notes, and snippets.

@gabro
Created September 13, 2014 14:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gabro/9ff7e4d39184f45925e2 to your computer and use it in GitHub Desktop.
Save gabro/9ff7e4d39184f45925e2 to your computer and use it in GitHub Desktop.
Var length generator
def gen(n: Int, limit: Int, k: Int = 1): Iterator[List[Int]] = {
val range = (k until limit).iterator
n match {
case _ if n > 0 => for {
x <- range
y <- gen(n - 2, limit, x)
} yield x :: y
case _ => range.map(List(_))
}
}
def gen(n: Int, limit: Int, k: Int = 1): Iterator[List[Int]] =
val range = (k until limit).iterator
if (n > 0) {
for {
x <- range
y <- gen(n - 2, limit, x)
} yield x :: y
} else {
range.map(List(_))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment