I got the following code:
f = lambda y, z: filter(y, z)
g = lambda x: [x for x in range(int(x**0.5))]
r = f(g, g(11))
I was wondering how r ended up being [1,2].
I understand why g(11) is [0,1,2] but I didn't quite catch how the filter function works here.