为什么把 求素数函数当中子函数_not_divisible(n)的调用,改成lambda表达式得到的结果是错的
Topic source假设 filter 过滤到了第三轮,这三轮 n 分别为 3, 5, 7
前者相当于是
it = filter(_not_divisible(7), filter(_not_divisible(5), filter(_not_divisible(3), it)))
即:
it = filter(lambda x: x % 7 > 0, filter(lambda x: x % 5 > 0, filter(lambda x: x % 3 > 0, it)))
而后者由于 n 一直在变化,相当于:
it = filter(lambda x: x % 7 > 0, filter(lambda x: x % 7 > 0, filter(lambda x: x % 7 > 0, it)))
- 1
Bob