Jump to content

Find the missing permutation: Difference between revisions

→‎{{header|Wren}}: Now uses Wren-perm module.
m (→‎{{header|Phix}}: added syntax colouring, made p2js compatible)
(→‎{{header|Wren}}: Now uses Wren-perm module.)
Line 3,261:
{{trans|Kotlin}}
{{libheader|Wren-set}}
{{libheader|Wren-perm}}
<lang ecmascript>import "./set" for Set
 
import "./perm" for Perm
var permute // recursive
permute = Fn.new { |input|
if (input.count == 1) return [input]
var perms = []
var toInsert = input[0]
for (perm in permute.call(input[1..-1])) {
for (i in 0..perm.count) {
var newPerm = perm.toList
newPerm.insert(i, toInsert)
perms.add(newPerm)
}
}
return perms
}
 
var missingPerms = Fn.new { |input, perms|
var s1 = Set.new()
s1.addAll(perms)
var perms2 = permutePerm.calllist(input).map { |p| p.join() }
var s2 = Set.new()
s2.addAll(perms2)
return s2.except(s1).toList
}
 
var input = ["A", "B", "C", "D"]
var perms = [
9,476

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.