LINUX.ORG.RU

История изменений

Исправление 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, :