pep_049
pep_050 wip with Memoize with Y combinator