# Let’s do a Koch snowflake

Good friend Dimitris, after reading my previous post pointed me to Koch snowflakes. How cool is a line of infinite length that covers a finite surface! A Koch snowflake turns out to be easily constructed with turtle as suggested by the Wikipedia article. Well, you also get to learn about Thue-Morse sequences and evil numbers in the process. To be honest, this is also a good toy case, using a real sequence, to learn how to use yield.

```import turtle
import functools

# Compute the next digit of the Thue-Morse sequence
# https://oeis.org/A010060
# Learn about evil and oddium numbers in the process.

def thue_morse_seq(n=0):
while True:
yield functools.reduce(lambda x, y: x + y, map(int, bin(n)[2:])) % 2
n += 1

if __name__ == "__main__":

window = turtle.Screen()
window.bgcolor('light gray')

pen = turtle.Turtle()
pen.speed(20)
pen.color('dark blue')
pen.pensize(1)
pen.shape('classic')
pen.penup()
pen.setpos(0, 0)
pen.pendown()

n = thue_morse_seq(0)
while True:
if next(n) == 0:
pen.forward(2)
else:
pen.left(60)

```

[pastebin]