Norvig's reboot of Strachey's 1966 checkers program (ab)uses default arguments to map CPL's 1960's era use of
let-binding. Now, there are other stupid tricks one can play with binding in python, but my current favorite involves misuse of comprehensions.
With a bit of effort, we even have
print(min( f(6) for Y0 in [lambda y,f: lambda *x: f(y(y,f))(*x)] for f in [Y0(Y0,lambda fac: lambda n: 1 if n<2 else n*fac(n-1))]))
Exercise 1: add one line to produce the classic
Exercise 2*: modify
Y0 to support the classic mutual recursion between
 or not exactly misuse? cf Wadler's Comprehending Monads (p19,infra):
[the existence of the map from the identity to the list monad] explains a trick occasionally used...