Commit Diff


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]