Permutations: Difference between revisions

Content added Content deleted
m (→‎{{header|Langur}}: 1 part for loops; implicit range with series() function)
Line 3,725: Line 3,725:
val .limit = 10
val .limit = 10
if len(.arr) > .limit {
if len(.arr) > .limit {
throw $"Permutation limit exceeded (currently \.limit;)"
throw $"permutation limit exceeded (currently \.limit;)"
}
}


var .elements = .arr
var .elements = .arr
var .ordinals = series 1 .. len .elements
var .ordinals = series len .elements
var .arrOf = [.arr]
var .arrOf = [.arr]


Line 3,738: Line 3,738:
.i = .n - 1
.i = .n - 1
.j = .n
.j = .n
for ; .ordinals[.i] > .ordinals[.i+1]; {
for .ordinals[.i] > .ordinals[.i+1] {
.i -= 1
.i -= 1
}
}
for ; .ordinals[.j] < .ordinals[.i]; {
for .ordinals[.j] < .ordinals[.i] {
.j -=1
.j -=1
}
}