#!/usr/bin/env python3

def tokenizer(inString):
  sepChar = " "
  lastPos = 0
  inString = inString + sepChar     # seperation token
  for ii in range(len(inString)):
    if inString[ii] == sepChar:
      yield inString[lastPos:ii]
#      print(ii, inString, inString[lastPos:ii])
      lastPos = ii + 1

def fibonacci(maxN):
   x, y = 0, 1
   for _ in range(maxN):            # no variable needed
     x, y = y, x+y
     yield x


myText = "Warum bin ich hier?"
myList = [x for x in myText]
print("\nmyText\n",myText)
print("\nmyList\n",myList)
print()
myGenerator = tokenizer(myText)
print("type(myText)      : ", type(myText))
print("type(myList)      : ", type(myList))
print("type(myGenerator) : ", type(myGenerator))

print()
print("*** myList ***")
for cc in myList:
  print(cc, end='')                 # no endline
print()
print()

print("*** myGenerator ***")
for cc in myGenerator:
  print(cc, "",  end='')
print()

print("*********")
print("fibonacci")
print("*********")

[print(ff) for ff in fibonacci(5)]  # generator comprehension
print()
print(sum(fibonacci(5)))            # shortcut


