commit 2ccc3f8af5b945e04a06b3511e014e537230f745 from: Evan Burkey date: Tue Jan 25 21:43:10 2022 UTC Add documentation commit - 3889536a56748500b2332aea768ae954dfd48132 commit + 2ccc3f8af5b945e04a06b3511e014e537230f745 blob - ab0e1ae82f9fa54cf0b6370143f21209339e92e2 blob + 6fb9ea8233f44c549ae5a951b6d5752010f560ce --- permutation.go +++ permutation.go @@ -1,7 +1,17 @@ +/* +Package permutation implements Heap's algorithm for generating permutations of +lists. It uses Go 1.18's new generics feature to provide a generic interface +*/ package permutation +// GenSlice is a generic slice of data type GenSlice[T any] []T +/* +Permutations uses Heap's Algorithm to generate a list of all possible +permutations of the provided list. Most slices will automatically coerce +their type into a GenSlice[T] with no casting required +*/ func Permutations[T any](arr GenSlice[T]) []GenSlice[T] { var helper func(GenSlice[T], int) var res []GenSlice[T]