package kata

/*
Paperfold implements the general paperfold generation (OEIS A0014577) based
on the algorithm given by Joerg Arndt, Apr 15 2010.

See https://oeis.org/A014577
 */
func PaperFold(ch chan<- int) {
	i := 1
	for {
		k := i
		h := k & -k
		k &= h << 1
		if k == 0 {
			ch <- 1
		} else {
			ch <- 0
		}
		i++
	}
}