История изменений
Исправление beastie, (текущая версия) :
Quick'n'dirty: https://play.golang.org/p/hj2OXXXV46y
package main
import "fmt"
func main() {
input := []int{1, 2, 3, 4, 5}
ch := make(chan []int)
go func(v []int) {
defer close(ch)
for i := 0; i <= len(v); i++ {
car, cdr := v[:i:i], v[i:]
for _, x := range cdr {
ch <- append(car, x)
}
}
}(input)
for v := range ch {
fmt.Println(v)
}
}
Output:
[1]
[2]
[3]
[4]
[5]
[1 2]
[1 3]
[1 4]
[1 5]
[1 2 3]
[1 2 4]
[1 2 5]
[1 2 3 4]
[1 2 3 5]
[1 2 3 4 5]
Исправление beastie, :
Quick'n'dirty: https://play.golang.org/p/hj2OXXXV46y
package main
import "fmt"
func main() {
input := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
ch := make(chan []int)
go func(v []int) {
defer close(ch)
for i := 0; i <= len(v); i++ {
car, cdr := v[:i:i], v[i:]
for _, x := range cdr {
ch <- append(car, x)
}
}
}(input)
for v := range ch {
fmt.Println(v)
}
}
Output:
[1]
[2]
[3]
[4]
[5]
[1 2]
[1 3]
[1 4]
[1 5]
[1 2 3]
[1 2 4]
[1 2 5]
[1 2 3 4]
[1 2 3 5]
[1 2 3 4 5]
Исправление beastie, :
Quick'n'dirty: https://play.golang.org/p/hj2OXXXV46y
[1]
[2]
[3]
[4]
[5]
[1 2]
[1 3]
[1 4]
[1 5]
[1 2 3]
[1 2 4]
[1 2 5]
[1 2 3 4]
[1 2 3 5]
[1 2 3 4 5]
Исходная версия beastie, :